我有一些使用gcm notification
的应用。他们工作正常,但这里有一个问题:如果我不打开其中一个已经很长一段时间(比如2个月或更多),它将不再收到通知。
实际上,我也遇到了stackoverflow应用程序的这种行为。 任何人都可以解释是什么原因以及如何避免它?
答案 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服务,该服务可让您管理后台任务的生命周期。
文档只说"醒来"这对我来说意味着一个应用程序是"睡觉"或在后台。但是当你强行关闭一个应用程序时,它没有正在运行的进程来唤醒"它需要启动。
希望这有帮助!