android - 从 GCM onMessage() 调用 MainActivity 内的方法

标签 android google-cloud-messaging

我想当 GCMIntentService.java 中的 onMessage() 收到新消息时,onMessage() 调用一个名为 blinkLED()MainActivity.java 中,因此 blinkLED() 方法可以使用 onMessage() 接收到的数据,我该如何实现?示例代码会有所帮助。

最佳答案

使用广播接收器。这tutorial向您展示如何从一个类发送广播 Intent ,并让另一个类处理它。

简短的例子,在你的 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); 

关于android - 从 GCM onMessage() 调用 MainActivity 内的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14661749/

相关文章:

android - 构造函数未定义 ArrayAdapter

android - payload 4096字节是否包括registration_id长度?

Android 推送通知 - Google Play

Android Phonegap GCM 多重通知

java - Android ListView 正在回收仍在屏幕上的项目

android - android 清除字符串中的值

android - 如何在 Android fragment 中运行或启动应用程序?

java - 在适用于 Android 的 Google 云消息传递中

Android GCM 通知从 PubNub、Parse、Amazon SNS 失败

android - 如果 GCM 自动显示,如何处理 Android 中的通知点击