2

我想当GCMIntentService.java中的onMessage( )收到一条新消息时, onMessage() 调用MainActivity.java中的一个名为blinkLED()的方法,因此blinkLED()方法可以使用onMessage()接收到的数据,怎么能我执行那个?示例代码会有所帮助。

4

1 回答 1

6

使用广播接收器。本教程向您展示如何从一个类发送广播意图,并让另一个类处理它。

简短的例子,在你的 GCMIntentService::onMessage() 中,你可能有这个:

Intent intent = new Intent();
intent.setAction("com.my.app.blinkled");
sendBroadcast(intent); 

然后在您的 MainActivity 中,您实现了一个 BroadcastReceiver :

private class MyBroadcastReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    blinkLED();
  }
} 

并在 MainActivity 的 onResume() 中注册:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.my.app.blinkled");
receiver = new MyBroadcastReceiver();
registerReceiver(receiver, intentFilter); 
于 2013-02-04T15:11:13.330 回答