6

Android 3.1 の Android プッシュ通知 (GCM) に問題があります。アプリが閉じている場合、GCM プッシュ メッセージ (インテント) を処理するブロードキャスト レシーバーが呼び出されません。

Androidの下位バージョンでは、すべて正常に動作します。ブロードキャスト レシーバーは常に呼び出されます (アプリが閉じられている場合でも)。

Android 3.1から新しい概念があることを知っています:アプリケーションが実行されていないときは「停止」状態です: http://developer.android.com/about/versions/android-3.1.html#launchcontrols

したがって、Intent を介して「停止した」アプリケーションを開始する場合は、FLAG_INCLUDE_STOPPED_PACKAGES フラグを Intent に追加する必要があります。

しかし、問題は、GCM インテント (「com.google.android.c2dm.intent.RECEIVE」と「com.google.android.c2dm.intent.REGISTRATION」を意味する) がスローされるため、GCM インテントに FLAG_INCLUDE_STOPPED_PACKAGES フラグを追加できないことです。 OSによって。

だから私の質問は次のとおりです:アプリケーション(ブロードキャストレシーバーが登録されている)が閉じられている(「停止」状態にある)状況でブロードキャストレシーバーを介してGCMからプッシュメッセージ(Android 3.1)を処理するにはどうすればよいですか?

4

1 に答える 1

7

アプリケーション(ブロードキャストレシーバーが登録されている)が閉じている(「停止」状態にある)状況で、ブロードキャストレシーバーを介してGCMからプッシュメッセージ(Android 3.1)を処理するにはどうすればよいですか?

できません。ユーザーがアプリを強制停止した場合、ユーザーがアクティビティの 1 つを起動するなど、手動で呼び出されない限り、アプリは (Android 3.1 以降で) 再度実行されません。目的は、ユーザーがアプリを強制停止する理由をなくすことです。

于 2012-09-06T14:56:50.217 に答える