我有应用程序发送通知,我使用此代码进行待处理的意图
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
中获取数据时,我只找到了最后一个链接,所有创建的通知都有最后一个链接。
我不知道如何避免这种情况。
答案 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);