应用程序处于停止状态时接收Android GCM通知

Mop*_*per 6 android android-intent android-c2dm google-cloud-messaging

在我们使用GCM的其中一个应用程序上,我们一直在收到有关应用程序被杀后应用程序停止接收通知的报告.再次启动应用程序时,通知显示正常.

经过调查,我们发现这是由于Android 3.1上的这一变化:

请注意,系统将FLAG_EXCLUDE_STOPPED_PACKAGES添加到所有广播意图.这样做是为了防止来自后台服务的广播无意或不必要地启动已停止的应用程序的组件.后台服务或应用程序可以通过将FLAG_INCLUDE_STOPPED_PACKAGES标志添加到应允许激活已停止的应用程序的广播意图来覆盖此行为.(Android 3.1更改)

我检查了收到通知后GCM触发的意图,我注意到确实设置了FLAG_EXCLUDE_STOPPED_PACKAGES.

这意味着在Android 3.1+上运行我们的应用的所有用户一旦杀死他们的应用就会停止接收通知,直到他们自己重启.(Pre-Android 3.1工作得很好).

由于GCM框架本身触发了intent,我们无法更改在其上设置的标志,因此我们正在寻找另一种解决方法.

所有想法都表示赞赏.

小智 -3

您应该从 menifist 文件注册 gcm 广播接收器,这样即使应用程序关闭,接收器也会收到通知。