6

android 3.1 上的 android 推送通知 (GCM) 存在问题:当我的应用程序关闭时 - 应该处理 GCM 推送消息 (Intents) 的广播接收器永远不会被调用。

在较低版本的 android 中,一切正常。广播接收器总是被调用(即使应用程序关闭)。

我知道从 Android 3.1 开始有新概念:当应用程序未运行时,它处于“停止”状态:http: //developer.android.com/about/versions/android-3.1.html#launchcontrols

因此,如果您想通过 Intent 启动“停止”应用程序 - 您应该将 FLAG_INCLUDE_STOPPED_PACKAGES 标志添加到 Intent。

但问题是我无法将 FLAG_INCLUDE_STOPPED_PACKAGES 标志添加到 GCM 意图,因为 GCM 意图(我的意思是“com.google.android.c2dm.intent.RECEIVE”和“com.google.android.c2dm.intent.REGISTRATION”)被抛出由操作系统。

所以我的问题是:在应用程序(其中注册了广播接收器)关闭(处于“停止”状态)的情况下,我如何通过广播接收器处理来自 GCM 的推送消息(在 android 3.1 上)?

4

1 回答 1

7

在应用程序(其中注册了广播接收器)关闭(处于“停止”状态)的情况下,我如何通过广播接收器处理来自 GCM 的推送消息(在 android 3.1 上)?

你不能。如果用户强制停止您的应用程序,除非手动调用,否则您的应用程序将不会再次运行(在 Android 3.1+ 上),例如用户启动您的一项活动。您的目标是让用户没有理由强制停止您的应用程序。

于 2012-09-06T14:56:50.217 回答