2

我为 android 编写应用程序,它将与 GCM 通信。我可以收到消息,但我想在屏幕上显示它并得到错误。
有我的代码,我在 Activity act = (Activity) context; 行有问题
我收到错误“此类文件的 JAR 属于容器‘Android 依赖项’,它不允许修改其条目上的源附件”

@Override
protected void onMessage(Context context, Intent indent) {

    String message = indent.getExtras().getString("message").toString();

    Log.i(TAG, "new message= " + message);

    Activity act = (Activity) context;  
    if(act != null)
    {
        TextView pushNotification = (TextView) act.findViewById(R.id.txtPushNotify);    
        pushNotification.setText(message);
    }
}

我做错了什么??这个方法在课堂上

public class GCMIntentService extends GCMBaseIntentService {...}

有我的 LogCat

致命异常:IntentService[GCMIntentService-19193409722-1] java.lang.ClassCastException:
com.sagar.gcma.GCMIntentService.onMessage(GCMIntentService.java:41)
上 com.google.android.gcm.GCMBaseIntentService 上的 android.app.Application。 onHandleIntent(GCMBaseIntentService.java:223)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper .java:123)
在 android.os.HandlerThread.run(HandlerThread.java:60)

4

2 回答 2

4

试试下面的代码。

Intent myIntent = new Intent(context.getApplicationContext(), YourActivity.class);
Bundle bundle = new Bundle();
bundle.putString("message", message);
myIntent.putExtras(bundle);
context.getApplicationContext().startActivity(myIntent);

然后在其中编写消息显示代码activity

于 2013-02-12T08:40:34.247 回答
1

错误消息“此类文件的 JAT 属于容器'Android 依赖项',它不允许修改其条目上的源附件”似乎(不知何故)与我无关,因为它是由 IDE 生成的错误消息,与您的实际代码无关。

我会小心代码中的演员表:

Activity act = (Activity) context;  

您确定传递的上下文实际上(无论如何)是您的活动吗?

编辑:

阅读您的编辑,我可以确认您收到的上下文是您的应用程序,而不是活动。

而且您需要以某种方式将该消息(您的服务收到)中继到前台活动(如果处于活动状态)。如果没有前台活动,请使用通知或类似的东西。

于 2013-02-12T07:52:10.787 回答