38

私は通知バーからオープンされているアクティビティを持っていますが、NotificationManager.notify(...)を実行すると、インテントに別のバンドルを渡して、各通知が同じアクティビティを開きますが、 DBから他の情報を取得する。同じアクティビティへの複数の通知

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

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

+0

として)通知のために同じ一意の値を(使いますか?私は同様の問題を抱えていました。なぜなら、保留中の意図がフレームワークによって再利用されていたからです。 – Maximus

答えて

104

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

状況に応じて、私は通常、静的な値(0,1,2)またはDBから受け取っているデータの行IDとして一意の要求コードを提供することでこれを解決します。

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

その後、私はあなたが保留中のインテントを作成しているコードの一部を共有することができ

mNotificationManager.notify(MY_UNIQUE_VALUE, notification); 
+0

これは私のためにやった。どうもありがとう。開発者は実際には、getActivityメソッドではなく、notifyメソッドの一意のIDだけを記述しています。 – hcpl

+7

私は同じ問題を抱えていました。このソリューションは完全に機能します。私は問題が[ドキュメント](http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,%20int,%20android.content.Intent,% 20int%29) - リクエストコードが現在使用されていないと主張していますが、それはそうです。答えをありがとう。 – jstr069

+5

これも私のために働いた。それを解決策としてマークしてください。 – dangel

関連する問題