某些时候在手机中没有收到推送通知GCM

我正面临着一个奇怪的问题。 如果在从服务器端发送消息的时候连接到互联网,那么我的手机就会收到推送通知。 但是,如果当时没有连接到互联网,而是在一段时间后连接到互联网。 我没有收到该通知。 据我所知,所有这些通知应该显示,只要我们在线,因为GCM服务器存储所有这些消息。 我收到所有其他应用程序的通知。 我也给了清单中的wakelock权限。 可能是什么问题? 任何从服务器端,客户端或移动? 请帮忙…

该值从第三方服务器(.Net服务器)发送到GCM服务器:

String postdata= "collapse_key=score_update&time_to_live=2419200&delay_while_idle=1&data.message=‌​" + message + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceToken + "" 

提前致谢

Solutions Collecting From Web of "某些时候在手机中没有收到推送通知GCM"

delay_while_idle=1矛盾Also I have given wakelock permission in manifest

delay_while_idle=1意味着消息不会到达设备,如果它是空闲的(closures,离线,locking屏幕等…)。 将其更改为0,如果你想让你的wakelock权限有所作为。

只是为了澄清 – 消息应停止闲置后才能到达设备(只要没有闲置太久,“太长”由指定的time_to_live决定)。

以下是GCM文档中的相关引用:

delay_while_idle

如果包括,则表示如果设备空闲,则不应该立即发送消息。 服务器将等待设备激活,然后只发送每个collapse_key值的最后一条消息。 可选的。 默认值是false,并且必须是JSON布尔值。

time_to_live

如果设备处于离线状态,则应在GCM存储上保留该消息多长时间(以秒为单位)。 可选(默认生存时间为4周,并且必须设置为JSON号码)。