0

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

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

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

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

4

1 回答 1

3

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

根据 C2DM 文档,在清单中注册您的接收器。

那么:我如何通知用户传入的数据?

提高一个Notification

由于您的接收者不一定知道前台是否有您的活动,因此最好的解决方案是发送您自己的广播Intent,但要发送一个已订购的广播。让活动为您自己的广播注册一个高优先级BroadcastReceiver,并让另一个清单注册的活动为您自己的广播BroadcastReceiver实现一个正常优先级BroadcastReceiver。如果活动收到广播,它会显示您的弹出窗口(ick)并中止广播。如果您的“支持”BroadcastReceiver获得广播,它会显示一个Notification. 这是一篇博客文章,其中包含有关此模式的更多详细信息,这里是一个示例项目,演示了这种有序广播的使用。

于 2012-04-27T14:52:33.253 回答