应用程序关闭时接收意图广播

时间:2012-04-27 14:44:52

标签: android android-intent android-c2dm broadcast

我第一次使用C2DM,我正在寻找一般建议如何实现以下目标: 在收到C2DM消息后,我决定:   - 如果应用程序已启用,则当前活动将显示“警报弹出窗口”。   - 如果应用程序未打开,我想向通知栏发送消息(类似于新的电子邮件,短信,推特等)。

我们有一个GlobalBroadcastReceiver extends BroadcastReceiver来实现public void onReceive(Context context, Intent intent)。这是在AndroidManifest.xml中注册的接收者 所以基本上我们所有的广播都通过这个接收器传输,第一种情况没有问题。

然而,我想知道如何解决第二个问题。即使我的应用程序关闭,我怎样才能确保收到C2DM.RECEIVE广播,然后:如何通知用户有关传入的数据?

我非常自信已经有很多解决方案,但由于我找不到它们,我想我只是错过了一些大局。

1 个答案:

答案 0 :(得分:3)

  

即使我的应用程序关闭,如何确保收到C2DM.RECEIVE广播

让您的收件人在清单per the C2DM documentation中注册。

  

然后:如何通知用户有关传入的数据?

举起Notification

由于你的接收者不一定知道前景中是否有你的活动,最好的解决方案是发送你自己的广播Intent,但是订购的广播。让活动为您自己的广播注册高优先级BroadcastReceiver,并让另一个清单注册BroadcastReceiver为您自己的广播实现正常优先级BroadcastReceiver。如果活动获得广播,它将显示您的弹出窗口(ick)并中止广播。如果您的“后挡”BroadcastReceiver获得广播,则会显示NotificationHere is a blog post详细介绍了这种模式,并here is a sample project演示了对有序广播的使用。