即使time_to_live为0,GCM也会向空闲设备发送消息

时间:2014-12-03 10:47:32

标签: android google-cloud-messaging

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

time_to_live = 0;
delay_while_idle = false;

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

我立即收到设备_2上的消息(按预期
过了一会儿(约5秒)我解锁了Device_1的屏幕并激活它,令我惊讶的是我也收到了device_1上的消息(奇怪 UnExpected )< / p>

为什么会出现这样的行为,或者我误解了GCM文档中的

>

**

GCM文档中的事实

**(http://developer.android.com/google/gcm/adv.html) time_to_live值为0秒。换句话说,GCM将保证必须“现在或从不”传递的消息的最大努力。 请记住,time_to_live值为0表示无法立即传递的邮件将被丢弃。但是,由于此类消息从未存储过,因此这为发送通知提供了最佳延迟。

1 个答案:

答案 0 :(得分:2)

如果您使用delay_while_idle = false发送邮件,则表示它会立即传送到空闲设备。您应该使用delay_while_idle = true发送。