1

我正在开发一个讨论图片的聊天应用程序。当我收到一条 c2dm 消息时,有效负载包含该消息和一个 md5,用于标识该消息所涉及的图片。当具有匹配 md5 的 ChatActivity 在前台时,我只想播放声音。如果不是,我想向通知栏添加通知。

这与 whatsapp 的行为相同。如何实施?

4

1 回答 1

2

除了为 C2DM 消息注册现有清单之外,还需要注册一个以接收C2DMChatActivity消息。让in使用 的为正值,默认为 0。在or中使用,在or中使用。BroadcastReceiverBroadcastReceiverIntentFilterChatActivityregisterReceiver()setPriority()registerReceiver()onResume()onStart()unregisterReceiver()onPause()onStop()

结果是当 C2DM 消息到达时,如果你ChatActivity在前台,由于优先级更高,它会先得到消息。它可以检查消息是否与它的图像有关。如果是,则ChatActivity可以BroadcastReceiver调用abortBroadcast(), 以防止您的标准优先级清单注册接收器获取广播。因此,如果您的清单注册接收器确实收到了广播,那么您就知道前台没有相关ChatActivity内容,并且它可以提高Notification.

这是一个演示大部分内容的示例应用程序。广播来自应用程序本身,而不是 C2DM,但结构的其余部分几乎相同。

于 2012-08-05T21:20:14.247 回答