【问题标题】:Are GCM messages sent as an ordered broadcast?GCM 消息是否作为有序广播发送?
【发布时间】:2015-02-13 09:02:52
【问题描述】:

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

例如:GCM BroadcastReceiver setResultCode use

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

GCM 消息真的是作为有序广播发送的吗?

【问题讨论】:

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


    【解决方案1】:

    我想我已经找到了我无法控制广播的原因(这让我相信 GCM 广播没有排序):我忘记调用 abortBroadcast() 来阻止第二个广播接收器处理广播留言:

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

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

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

    【讨论】:

      【解决方案2】:

      来自谷歌Documentation

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

      【讨论】:

        猜你喜欢
        • 2021-12-18
        • 1970-01-01
        • 2013-01-11
        • 2022-01-16
        • 2016-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-01
        相关资源
        最近更新 更多