Android 从GCMinentService调用onResume()或onCreate()

Android 从GCMinentService调用onResume()或onCreate(),android,Android,我正在开发一个应用程序,它使用gcminentservice进行推送通知。因此,我想刷新我的TabActivity选项卡中的一个ListView的数据。因此,当我收到和收到gcminentmessage时,是否可以从gcminentservice执行此操作 比如说 SecondTabActivity.callOnResume(); //or something like this 或 我需要在不使用startActivity(intent)的情况下执行此操作;因为如果我做了第二个tabacti

我正在开发一个应用程序,它使用
gcminentservice
进行推送通知。因此,我想刷新我的
TabActivity
选项卡中的一个
ListView
的数据。因此,当我收到和收到
gcminentmessage
时,是否可以从
gcminentservice
执行此操作

比如说

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


我需要在不使用
startActivity(intent)
的情况下执行此操作;因为如果我做了第二个tabactivity,它就会从我的
TabHost
中消失,并像新的
Activity
一样开始。刷新
列表视图的函数位于第二个选项卡Activity中的
onCreate(
)和
onResume()
,因此我想调用它们。如果除此之外还有其他方法,请参考。谢谢

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

  • 在选项卡Activity的onCreate中,使用Context.registerReceiver方法为名为“MyGCMMessageReceived”的意图注册广播接收器

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

    this.registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // INSERT CODE TO REFRESH LIST VIEW
        }
    }, new IntentFilter("MyGCMMessageReceived"));
    
  • 使GCMinentService的onMessage方法广播名为“MyGCMMessageReceived”的意图

  • 您应该在服务到活动通信中使用

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


    这里有一个简单的例子:

    这似乎是一个很好的答案,但我不能完全理解你想说什么。你能给我一些被剪断的代码吗?我还在尝试,我会让你知道它是否有效:)像魔术一样工作!你是真正的“生命救世主”:)非常感谢!保持好的答案像这样来!我浏览了100页谷歌,找不到答案,但你在这里!再次感谢!
    this.registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // INSERT CODE TO REFRESH LIST VIEW
        }
    }, new IntentFilter("MyGCMMessageReceived"));
    
        Intent intent = new Intent("MyGCMMessageReceived");
        this.sendBroadcast(intent);