多个待定意图?

时间:2015-01-22 14:55:11

标签: android android-pendingintent

我的活动会产生一些通知。

以下是我目前在不同的resultIntents上的表现:

PendingIntent resultPendingIntent =
  PendingIntent.getActivity(
    context,
    0,
    resultIntent,
    PendingIntent.FLAG_UPDATE_CURRENT
  );

现在,由于标志是强制性的,我被迫从the four flags中选择。如果我希望所有这些内容独立工作,并且较新的通知不受前一个通知的影响,我该怎么办。

2 个答案:

答案 0 :(得分:6)

这里找到了一个解决方案:here

您对意图的setAction使用唯一值,这样就不会有匹配的PendingIntents

这是我使用的:

setAction(Long.toString(System.currentTimeMillis()))

答案 1 :(得分:2)

来自官方文档

  

如果您确实需要多个不同的PendingIntent对象同时处于活动状态(例如用作同时显示的两个通知),那么您需要确保关联它们的某些内容有所不同他们有不同的PendingIntents。这可能是Intent.filterEquals考虑的任何Intent属性,或者提供给getActivity(Context,int,Intent,int),getActivities(Context,int,Intent [],int),getBroadcast(Context,int)的不同请求代码整数。 ,Intent,int)或getService(Context,int,Intent,int)。

Intent.filterEquals文档:

  

确定两个意图是否相同以进行意图解析(过滤)。也就是说,如果他们的行为,数据,类型,类别和类别是相同的。这不会比较意图中包含的任何额外数据。

如果您需要无限量的PendingIntents,我建议您使用Intent.setData来获得某种独特的价值。如果您可以对其进行分组,请使用setTypeaddCategory来减少所需的唯一PendingIntents数量。