GCM消息是否作为有序广播发送?

时间:2015-02-13 09:02:53

标签: android push-notification broadcastreceiver google-cloud-messaging

我看过一些帖子提到GCM消息是作为有序广播发送的,并且" android:priority"因此,属性可用于控制哪个(多个)接收器应首先处理广播。

例如:GCM BroadcastReceiver setResultCode use

但是,我无法从Google找到任何证实这一点的文档。无论我在不同的GCM接收器上设置了哪个优先级,广播似乎都是无序的。

GCM消息是否真的按订购广播发送?

2 个答案:

答案 0 :(得分:1)

我想我已经找到了为什么我无法控制我的广播(这让我相信没有订购GCM广播):我忘了拨打abortBroadcast()来阻止第二台广播接收机处理广播消息:

http://developer.android.com/reference/android/content/BroadcastReceiver.html#abortBroadcast()

  

设置指示此接收器应中止当前广播的标志;仅适用于通过Context.sendOrderedBroadcast发送的广播。这将阻止任何其他广播接收机接收广播。

因此,当我调用abortBroadcast()时,只有第一个接收者处理广播。

答案 1 :(得分:0)

来自Google Documentation

  

带有效负载的#"消息"不仅仅是一个" ping"移动应用程序联系服务器以获取数据。例如,在上述IM应用程序中,您希望传递每条消息,因为每条消息都有不同的内容。要指定不可折叠的消息,只需省略collapse_key参数即可。因此,GCM将单独发送每条消息。请注意,不保证交货顺序。