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

时间:2017-01-01 12:19:41

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

另外,根据这个thread

  

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

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

  

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

希望这有帮助!