web-dev-qa-db-ja.com

同じアクティビティへの複数の通知

通知バーから開かれているアクティビティがありますが、NotificationManager.notify(...)を実行すると、異なるバンドルがインテントに渡されるため、各通知は同じアクティビティを開きますが、DBから取得します他の情報は互いに。

しかし、いずれかの通知(たとえば、3つの通知がある)に入力しようとすると、それらはすべて、最後のものと同じバンドルのアクティビティーに私を送ります。いくつかのフラグで試した後、どこに問題があるのか​​本当にわかりません(一部のフラグは、最初のバンドルでアクティビティに通知を送ります)。

私は彼らが the tutorial でそれを使用した方法に従っています。

38
Daniel

PendingIntentに同じ操作、アクション、データ、カテゴリ、コンポーネント、およびフラグがある場合、それらは置き換えられます。

状況に応じて、静的な値(0,1,2)またはDBから受信しているデータの行IDのいずれかとして一意のリクエストコードを提供することで、通常これを解決します。

PendingIntent.getActivity(context, MY_UNIQUE_VALUE , notificationIntent, PendingIntent.FLAG_ONE_SHOT);

次に、notify()に同じ一意の値を使用します。

mNotificationManager.notify(MY_UNIQUE_VALUE, notification);
108
rochdev