[英]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.