待定意向多个通知

时间:2017-08-08 09:20:20

标签: android notifications android-pendingintent

我有应用程序发送通知,我使用此代码进行待处理的意图

  Intent myIntent = new Intent(getApplicationContext(),MainActivity.class);
  myIntent.putExtra("link",Link);

  PendingIntent intent2 =  
  PendingIntent.getActivity(getApplicationContext(),1,myIntent, 
  PendingIntent.FLAG_ONE_SHOT);

并且它第一次运行良好,但我在每1分钟调用一次的方法中使用这段代码。

问题是link变量从一个变为另一个。

当我在MainActivity中获取数据时,我只找到了最后一个链接,所有创建的通知都有最后一个链接。

我不知道如何避免这种情况。

2 个答案:

答案 0 :(得分:5)

您正在为待处理的意图发送相同的请求代码。这些代码被定义为您的Pending intent声明的第二个参数

更改

PendingIntent intent2 =  
  PendingIntent.getActivity(getApplicationContext(),1,myIntent, 
  PendingIntent.FLAG_ONE_SHOT);

要:

PendingIntent intent2 =  
  PendingIntent.getActivity(getApplicationContext(),UNIQUE_INT_VALUE_FOR_EVERY_CALL,myIntent, 
  PendingIntent.FLAG_ONE_SHOT);

如果你使用相同的id,意图将被重用,你将只获得最后的数据,而不是为每次调用获取新数据。

答案 1 :(得分:0)

试试这个,

  PendingIntent contentIntent = PendingIntent.getActivity(GCMNotificationIntentService.this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);