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