【问题标题】:GCM Sends message to an Idle device even with time_to_live is 0GCM 向空闲设备发送消息,即使 time_to_live 为 0
【发布时间】:2023-03-28 17:09:01
【问题描述】:

我在消息上设置了以下参数:

time_to_live = 0;
delay_while_idle = false;

现在我将消息发送到 2 个设备:device_1 保持在空闲模式(锁定屏幕) device_2 处于活动状态。

我立即在 device_2 上收到消息(很好如预期的那样
过了一会儿(约 5 秒),我解锁了 Device_1 的屏幕并使其处于活动状态,令我惊讶的是,我还在 device_1 上收到了消息(StrangeUnExpected

为什么会出现这种行为,还是我误解了 GCM 文档中的以下事实

**

GCM 文档中的事实

** (http://developer.android.com/google/gcm/adv.html) time_to_live 值为 0 秒。换句话说,GCM 将保证“现在或永远”必须交付的消息尽最大努力。 请注意,time_to_live 值为 0 意味着无法立即传递的消息将被丢弃。但是,由于此类消息永远不会被存储,这为发送通知提供了最佳延迟。

【问题讨论】:

    标签: android google-cloud-messaging


    【解决方案1】:

    如果您使用delay_while_idle = false 发送消息,这意味着它会立即传送到空闲设备。你应该用delay_while_idle = true发送它。

    【讨论】:

    • 好的,所以无论何时(即使在 1 小时后)我使设备处于活动状态,我都会看到该消息?还是有时间限制?
    • @UpVert 它应该在设备仍然空闲时立即交付,所以等待多长时间都没有关系(假设设备没有关闭并连接到互联网。否则消息无法传递)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2012-11-10
    • 1970-01-01
    相关资源
    最近更新 更多