我正在开发一个讨论图片的聊天应用程序。当我收到一条 c2dm 消息时,有效负载包含该消息和一个 md5,用于标识该消息所涉及的图片。当具有匹配 md5 的 ChatActivity 在前台时,我只想播放声音。如果不是,我想向通知栏添加通知。
这与 whatsapp 的行为相同。如何实施?
我正在开发一个讨论图片的聊天应用程序。当我收到一条 c2dm 消息时,有效负载包含该消息和一个 md5,用于标识该消息所涉及的图片。当具有匹配 md5 的 ChatActivity 在前台时,我只想播放声音。如果不是,我想向通知栏添加通知。
这与 whatsapp 的行为相同。如何实施?
除了为 C2DM 消息注册现有清单之外,还需要注册一个以接收C2DMChatActivity
消息。让in使用 的为正值,默认为 0。在or中使用,在or中使用。BroadcastReceiver
BroadcastReceiver
IntentFilter
ChatActivity
registerReceiver()
setPriority()
registerReceiver()
onResume()
onStart()
unregisterReceiver()
onPause()
onStop()
结果是当 C2DM 消息到达时,如果你ChatActivity
在前台,由于优先级更高,它会先得到消息。它可以检查消息是否与它的图像有关。如果是,则ChatActivity
可以BroadcastReceiver
调用abortBroadcast()
, 以防止您的标准优先级清单注册接收器获取广播。因此,如果您的清单注册接收器确实收到了广播,那么您就知道前台没有相关ChatActivity
内容,并且它可以提高Notification
.
这是一个演示大部分内容的示例应用程序。广播来自应用程序本身,而不是 C2DM,但结构的其余部分几乎相同。