我看过一些帖子,提到GCM消息是作为有序广播发送的,因此可以使用"android:priority“属性来控制(几个)接收器中应该首先处理广播的接收器。
例如:GCM BroadcastReceiver setResultCode use
然而,我找不到来自谷歌的任何文件来证实这一点。不管我在不同的GCM接收器上设置了哪个优先级,广播似乎是无序的。
GCM消息真的是按顺序广播发送的吗?
发布于 2015-02-17 04:29:41
我想我已经找到了为什么我不能控制我的广播(这让我相信GCM广播是没有顺序的):我忘记调用abortBroadcast()来阻止第二个广播接收器处理广播消息:
http://developer.android.com/reference/android/content/BroadcastReceiver.html#abortBroadcast():
设置指示此接收器应中止当前广播的标志;仅适用于通过Context.sendOrderedBroadcast发送的广播。这将阻止任何其他广播接收器接收该广播。
因此,当我调用abortBroadcast()时,只有第一个接收器处理广播。
发布于 2015-02-14 01:06:10
来自Google Documentation
“带有有效负载的消息”并不是简单地"ping“移动应用程序,以联系服务器来获取数据。例如,在前面提到的IM应用程序中,您可能希望传递每条消息,因为每条消息都有不同的内容。要指定不可折叠的消息,只需省略collapse_key参数。因此,GCM将单独发送每条消息。请注意,不保证交付顺序。
https://stackoverflow.com/questions/28495851
复制相似问题