每次在Android中创建新的Pending Intent

时间:2013-03-08 15:39:47

标签: android android-pendingintent

如何每次创建待处理的意图?目前,我现有的待定意图将被替换为新的意图。我尝试使用FLAG_ONE_SHOT以及CANCEL_CURRENT,但它无效。

2 个答案:

答案 0 :(得分:33)

在请求代码中添加一个随机数:

Intent intent = new Intent(context, YourClassname.class);
intent.putExtra("some data", "txt");  // for extra data if needed..

Random generator = new Random();

PendingIntent i=PendingIntent.getActivity(context, generator.nextInt(), intent,PendingIntent.FLAG_UPDATE_CURRENT);

答案 1 :(得分:11)

  

FLAG_CANCEL_CURRENT-如果描述的PendingIntent已经存在,则在生成新的PendingIntent之前取消当前的PendingIntent。

     

FLAG_NO_CREATE - 如果描述的PendingIntent尚不存在,则只返回null而不是创建它。

     

FLAG_ONE_SHOT - 此PendingIntent只能使用一次。

     

FLAG_UPDATE_CURRENT-如果描述的PendingIntent已经存在,那么保留它,但是它用这个新Intent中的内容替换它的额外数据。

     

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