繁体   English   中英

如果长时间未打开应用程序,则不会收到GCM推送通知

[英]GCM push notification is not received if app was not opened in a long time

我有一些使用gcm notification应用程序。 它们工作正常,但这里有一个问题:如果我不打开其中一个很长一段时间(比如2个月或更多),它将不再收到通知。

实际上,我也遇到了stackoverflow应用程序的这种行为。 任何人都可以解释是什么原因以及如何避免它?

通常gcm通知的使用寿命为4周后谷歌停止播放它。 但在您的情况下,应用程序通常具有唤醒定时器,以允许它们定期唤醒并尝试接收通知,即使没有打开。 如果您在一些应用程序上丢失通知,请检查您是否有节电应用程序,例如Greenify或其他有效阻止通知唤醒应用程序的应用程序。 如果没有,则可能是您的ROM具有电池节省功能,可阻止此唤醒等某些情况也可能触发应用程序中的唤醒,例如WiFi连接或数据已打开。

这里建议放置一个在后台连续运行的服务。 请注意, IntentService在用完工作时会自行停止。

另外,根据这个帖子

如果用户强制停止您的应用程序设置,您的代码将再次运行 ,直到手动运行您的某个组件,通常是用户手动启动活动(从Android 3.1开始)。 因此,如果用户强制停止您的应用程序设置,您将不会在较新的设备/模拟器上收到GCM消息。

正如@Bmbariah所说,Android设备上的Android应用程序不需要运行来接收消息。 只要应用程序设置了正确的广播接收器和权限,系统就会在消息到达时通过Intent广播唤醒Android应用程序。 您可以检查此WakefulBroadcastReceiver服务,该服务允许您管理后台任务的生命周期。

文档只说“醒来”,这对我来说意味着应用程序“正在睡觉”或在后台。 但是当你强制关闭一个应用程序时,它没有“唤醒”的运行进程,它需要启动。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM