だから私は基本的な通知アプリケーションを持っています。現在の構成の詳細は次のとおりです。
GCMIntentService
NotificationActivity
:
---->ViewMessageActivity
:
---->ViewUserDetailsActivity
GCMIntentService
通知を受信すると、保留中のインテントが作成され、インテントがフラグPendingIntent.FLAG_ONE_SHOT
を追加します。Intent.FLAG_ACTIVITY_NEW_TASK
現在、NotificationActivity
マニフェストで として定義していandroid:launchMode="singleInstance"
ます。に設定するとandroid:launchMode="singleTop"
、ユーザーが通知をクリックすると、Android のバージョンに応じていくつかのことが発生する可能性があります (または、2 つのデバイスが表示されます)。
- Android < 2.3 では、別のアクティビティ (たとえば
ViewMessageActivity
) で、シェードからの通知を押しても何も起こりません (からは何も受信しませんonNewIntent
) 。 - Android 4.2 (他のバージョンについては不明) で、別のアクティビティ (たとえば
ViewMessageActivity
) でシェードからの通知を押しても、何も起こらず (から何も受信しないonNewIntent
) 、通知がシェードから消えます。 - 私がいる場合
NotificationActivity
、バージョンに関係なくすべてがうまく機能します
したがって、これにより、singleInstance
の代わりにに設定するようになりましsingleTop
た。ユーザーが通知を押して、ユーザーが別のアクティビティ (たとえばViewMessageActivity
) にいる場合、通知インテントは適切に処理されますが、通知シェードでクリックされたメッセージNotificationActivity
の新しいインスタンスを作成しようとしましたが、新しいインスタンスはViewMessageActivity
作成されません。アクティビティ。代わりに、既に開いているインスタンスを表示します。私は次のようなフラグを追加しようとしましたが、 myまたはメソッドは my で呼び出されIntent.FLAG_ACTIVITY_NEW_TASK
ません。onCreate
onNewIntent
ViewMessageActivity
理想的には、これが私が望んでいることです: ユーザーがViewMessageActivity
メイン アクティビティ ( NotificationActivity
) から別のアクティビティ (たとえば ) に移動し、ユーザーが通知シェードから通知を押すと、NotificationActivity にフラグを立てて更新したいと思います。onNewIntent
別の ViewMessageActivity インスタンスを作成するListView ビュー。注: 他のアクティビティには launchMode オプションを設定していません。
助言がありますか?
ヴィンス