我有一些使用gcm通知
的应用程序。它们工作得很好,但是存在一个问题:如果我很长时间不打开其中一个应用程序(如2个月或更长时间),它将不再接收通知。
实际上,我也在stackoverflow应用程序中遇到了这种行为。 有人能解释一下原因以及如何避免吗?
我有一些使用gcm通知
的应用程序。它们工作得很好,但是存在一个问题:如果我很长时间不打开其中一个应用程序(如2个月或更长时间),它将不再接收通知。
实际上,我也在stackoverflow应用程序中遇到了这种行为。 有人能解释一下原因以及如何避免吗?
建议在后台持续运行的服务上这里。请注意,IntentService 在没有任务时会停止。
此外,根据此线程:
如果用户从设置中强制停止您的应用程序,则您的代码将永远不会再次运行,直到手动运行您的某个组件,通常是用户手动启动某个活动(自 Android 3.1 起)。因此,如果用户从设置中强制停止您的应用程序,则您将无法在新设备/模拟器上接收 GCM 消息。
正如@Bmbariah所说,Android设备上的Android应用程序不需要运行即可接收消息。只要应用程序设置了正确的广播接收器和权限,系统就会通过Intent广播唤醒Android应用程序,当消息到达时。您可以查看此WakefulBroadcastReceiver服务,它让您管理后台任务的生命周期。
文档只说“唤醒”,这对我来说意味着应用程序正在“休眠”或在后台运行。但是当您强制关闭应用程序时,它没有运行的进程来“唤醒”,因此需要启动它。
希望这可以帮助您!