38

我有一个正在从通知栏打开的活动,但是当我做NotificationManager.notify(...)时,我给意向分配了一个不同的包,以便每个通知打开相同的活动,但获得从DB其他信息彼此。对同一活动的多个通知

但是,当我尝试输入任何通知(例如有3个通知)时,它们都会将我发送给与最后一个相同的捆绑包。尝试使用一些标志后,我真的不知道问题出在哪里(有些标志会使通知进入第一个包的活动)。

我遵循他们在the tutorial中使用它的方式。

+0

相同的独特价值,你可以分享一些在其中创建挂起的意图的代码?我有一个类似的问题,这是因为他们正在等待框架重用的意图。 – Maximus 2011-05-20 02:54:11

回答

104

如果PendingIntent具有相同的操作,操作,数据,类别,组件和标志,它们将被替换。

根据情况我通常通过提供一个唯一的请求代码来解决这个问题,无论是静态值(0,1,2)还是我从数据库接收的数据的行ID。

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

然后,我使用的通知()作为

mNotificationManager.notify(MY_UNIQUE_VALUE, notification); 
+0

这是为我做的。非常感谢。开发人员文档实际上只提供通知方法的唯一标识,而不是getActivity方法。 – hcpl 2011-08-25 15:48:16

+7

我有同样的问题,这种解决方案完美的作品。我认为问题始于[文档](http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,%20int,%20android.content.Intent,% 20int%29) - 声称请求代码目前没有被使用,但它似乎是。感谢你的回答。 – jstr069 2011-07-07 17:28:46

+5

这也适用于我。请标记为解决方案。 – dangel 2013-06-03 10:44:08