0

だから私は基本的な通知アプリケーションを持っています。現在の構成の詳細は次のとおりです。

GCMIntentService

NotificationActivity
:
---->ViewMessageActivity
     :
     ---->ViewUserDetailsActivity

GCMIntentService通知を受信すると、保留中のインテントが作成され、インテントがフラグPendingIntent.FLAG_ONE_SHOTを追加します。Intent.FLAG_ACTIVITY_NEW_TASK

現在、NotificationActivityマニフェストで として定義していandroid:launchMode="singleInstance"ます。に設定するとandroid:launchMode="singleTop"、ユーザーが通知をクリックすると、Android のバージョンに応じていくつかのことが発生する可能性があります (または、2 つのデバイスが表示されます)。

  1. Android < 2.3 では、別のアクティビティ (たとえばViewMessageActivity) で、シェードからの通知を押しても何も起こりません (からは何も受信しませんonNewIntent) 。
  2. Android 4.2 (他のバージョンについては不明) で、別のアクティビティ (たとえばViewMessageActivity) でシェードからの通知を押しても、何も起こらず (から何も受信しないonNewIntent) 、通知がシェードから消えます。
  3. 私がいる場合NotificationActivity、バージョンに関係なくすべてがうまく機能します

したがって、これにより、singleInstanceの代わりにに設定するようになりましsingleTopた。ユーザーが通知を押して、ユーザーが別のアクティビティ (たとえばViewMessageActivity) にいる場合、通知インテントは適切に処理されますが、通知シェードでクリックされたメッセージNotificationActivityの新しいインスタンスを作成しようとしましたが、新しいインスタンスはViewMessageActivity作成されません。アクティビティ。代わりに、既に開いているインスタンスを表示します。私は次のようなフラグを追加しようとしましたが、 myまたはメソッドは my で呼び出されIntent.FLAG_ACTIVITY_NEW_TASKません。onCreateonNewIntentViewMessageActivity

理想的には、これが私が望んでいることです: ユーザーがViewMessageActivityメイン アクティビティ ( NotificationActivity) から別のアクティビティ (たとえば ) に移動し、ユーザーが通知シェードから通知を押すと、NotificationActivity にフラグを立てて更新したいと思います。onNewIntent別の ViewMessageActivity インスタンスを作成するListView ビュー。注: 他のアクティビティには launchMode オプションを設定していません。

助言がありますか?

ヴィンス

4

0 に答える 0