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

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

最佳答案

除了使现有清单为C2DM消息注册ChatActivity之外,还让BroadcastReceiver注册BroadcastReceiver来接收C2DM消息。让IntentFilter中的ChatActivity使用的registerReceiver()setPriority()使用正值,默认值为0。在registerReceiver()onResume()中使用onStart(),在unregisterReceiver() cc>或onPause()

结果是,当C2DM消息到达时,如果onStop()位于前台,则由于优先级较高,它将首先获取该消息。它可以检查消息是否有关其图像。如果是,ChatActivityChatActivity可以调用BroadcastReceiver,以防止您的标准优先级清单注册接收器获得广播。因此,如果清单注册的接收器确实得到了广播,则您知道前景中没有相关的abortBroadcast(),并且可以提高ChatActivity

Here is a sample app演示了大部分内容。广播来自应用程序本身,而不是C2DM,但其余结构几乎相同。

关于android - Android:确定是否收到广播,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11819384/

10-09 07:38