从GCMIntentService调用onResume()或onCreate()

我正在开发使用GCMIntentService推送通知的应用程序。 所以我想刷新我的TabActivity选项卡中的一个ListView的数据。 那么当我收到和GCMIntentMessage时,从GCMIntentService可以这样做吗?

例如

 SecondTabActivity.callOnResume(); //or something like this 

要么

 SecondTabActivity.callOnCreate(); // or something like this 

我需要这样做,而不使用startActivity(intent) ; 因为如果我做的SecondTabActivity是走出我的TabHost,它开始像新的Activity 。 刷新ListView的函数位于SecondTabActivity的onCreate( )和onResume()中,所以我想调用它们。 如果除此之外还有其他方法,请参阅。 谢谢

Solutions Collecting From Web of "从GCMIntentService调用onResume()或onCreate()"

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

  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")); 
  3. 使您的GCMIntentService的onMessage方法广播一个名为“MyGCMMessageReceived”的意图。

      Intent intent = new Intent("MyGCMMessageReceived"); this.sendBroadcast(intent); 

您应该在服务中将LocalBroadcastManager用于活动通信。

在您的IntentService中,通过本地广播发送新的信息,在TabActivity中,您必须注册一个接收器。 在onReceive方法中,你必须刷新你的视图。

这里有一个简单的例子: LocalBroadcastManager的例子