11

同じトピックに関する多くの投稿を読み、指定されたすべてのソリューションを試しましたが、必要な結果が得られませんでした。プログラムは、通知からエクストラを使用してインテントを開始する必要があります。

NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  

Intent notificationIntent = new Intent(context, myActivity.class);
    notificationIntent.putExtra("someData", data);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

mNotificationManager.notify(ID, notification);

問題は、新しい通知が表示されたときに、インテントに追加されたエクストラが最初の通知と同じになることです。インテントと保留中のインテントの両方で異なるフラグを試してみましたが、結果はありませんでした。私は何を間違えていますか?ボタンを使用して同じアクティビティ(および同じエクストラ)を起動すると、すべてが想定どおりに機能します。

4

3 に答える 3

10

これを機能させるのになぜこのような問題が発生したのかわかりません。適切に動作させるために使用したフラグの組み合わせは次のとおりです。

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 
                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);

の作成時に使用したすべてのフラグも削除しましたnotificationIntent

于 2010-07-06T00:43:47.743 に答える
5

AndroidManifest.xmlファイルに属性を追加してみてください。

<activity ... android:launchMode="singleTop"/>
于 2011-07-23T21:07:26.363 に答える