40

我有一个正在从通知栏打开的活动,但是当我这样做时NotificationManager.notify(...),我给意图一个不同的包,以便每个通知打开相同的活动,但从数据库中获取彼此的其他信息。

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

我正在按照他们在教程中使用它的方式进行操作。

4

1 回答 1

114

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

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

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

然后我为 notify() 使用相同的唯一值

mNotificationManager.notify(MY_UNIQUE_VALUE, notification);
于 2011-05-20T07:19:00.303 回答