我第一次使用C2DM,我正在寻找一般建议如何实现以下目标: 在收到C2DM消息后,我决定: - 如果应用程序已启用,则当前活动将显示“警报弹出窗口”。 - 如果应用程序未打开,我想向通知栏发送消息(类似于新的电子邮件,短信,推特等)。
我们有一个GlobalBroadcastReceiver extends BroadcastReceiver
来实现public void onReceive(Context context, Intent intent)
。这是在AndroidManifest.xml
中注册的仅接收者
所以基本上我们所有的广播都通过这个接收器传输,第一种情况没有问题。
然而,我想知道如何解决第二个问题。即使我的应用程序关闭,我怎样才能确保收到C2DM.RECEIVE广播,然后:如何通知用户有关传入的数据?
我非常自信已经有很多解决方案,但由于我找不到它们,我想我只是错过了一些大局。
答案 0 :(得分:3)
即使我的应用程序关闭,如何确保收到C2DM.RECEIVE广播
让您的收件人在清单per the C2DM documentation中注册。
然后:如何通知用户有关传入的数据?
举起Notification
。
由于你的接收者不一定知道前景中是否有你的活动,最好的解决方案是发送你自己的广播Intent
,但是订购的广播。让活动为您自己的广播注册高优先级BroadcastReceiver
,并让另一个清单注册BroadcastReceiver
为您自己的广播实现正常优先级BroadcastReceiver
。如果活动获得广播,它将显示您的弹出窗口(ick)并中止广播。如果您的“后挡”BroadcastReceiver
获得广播,则会显示Notification
。 Here is a blog post详细介绍了这种模式,并here is a sample project演示了对有序广播的使用。