当发送Notification时需要传递PendingIntent,如下:
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(MainActivity.ARGS_NOTICE_ID, noticeInfo.getId());
PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
不同参数通过intent的extra传递,当有多个PendingIntent时出现问题,MainActivity获取参数都是同一个,好像系统认为这些PendingIntent是相同的,因此修改代码如下:
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(MainActivity.ARGS_NOTICE_ID, noticeInfo.getId());
//解决PendingIntent的extra数据不准确问题
intent.setAction(Long.toString(System.currentTimeMillis()));
PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
问题解决,还有就是记得用PendingIntent.FLAG_UPDATE_CURRENT