Android中默认对PendingIntent的创建(如通过PendingIntent.getActivity方式)会进行优化检测,默认的情况下,新创建的PendingIntent如果和原先的基本一样,那么就会使用原先的PendingIntent。
这就导致在目前的项目中,一定间隔的重复给用户发送某类通知,其中带的Intent里的Extra内容不同,但是通知点击后传到一个Activity里的extra消息还是原来的。那么出现做这种问题可以这样解决,在创建PendingIntent时,语句改成如下:
注意PendingIntent.FLAG_UPDATE_CURRENT这个参数,关键就是设置了这个参数,在extra发送变化时确定为新的PendingIntent。其他同类参数的用法可进一步参考API文档。
附上参考网站上发现的解决方法:
http://stackoverflow.com/questions/4340431/how-can-i-correctly-pass-unique-extras-to-a-pending-intent
http://stackoverflow.com/questions/4472447/confusing-behavior-when-starting-new-activity-with-pendingintent