从GCMIntentService调用onResume()或onCreate()

Nas*_*kov 7 android

我正在开发GCMIntentService用于推送通知的应用程序.所以我想刷新ListView我的标签中的数据TabActivity.那么从GCMIntentService我收到的时候可以做到这一点GCMIntentMessage吗?

例如

SecondTabActivity.callOnResume(); //or something like this
Run Code Online (Sandbox Code Playgroud)

要么

SecondTabActivity.callOnCreate(); // or something like this
Run Code Online (Sandbox Code Playgroud)

我不需要使用就可以这样做startActivity(intent); 因为如果我做的话,SecondTabActivity就会离开我的TabHost,它就像新的一样开始Activity.用于刷新的ListView功能位于onCreate()和onResume()SecondTabActivity中,这就是我想要调用它们的原因.如果除此之外还有其他任何方式,请参阅它.谢谢

tom*_*tom 8

一个好方法是使用广播意图.

  1. 在TabActivity的onCreate中,使用Context.registerReceiver方法为名为"MyGCMMessageReceived"的意图注册广播接收器.

  2. 在该广播接收器中,调用刷新列表的方法.

    this.registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // INSERT CODE TO REFRESH LIST VIEW
        }
    }, new IntentFilter("MyGCMMessageReceived"));
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使GCMIntentService的onMessage方法广播名为"MyGCMMessageReceived"的意图.

        Intent intent = new Intent("MyGCMMessageReceived");
        this.sendBroadcast(intent);
    
    Run Code Online (Sandbox Code Playgroud)