七月网

requestcode

七月网3970

在使用PendingIntent向Activity和BroadcastReceiver传递内容时遇到的坑,记录下来。

requestcode

第二个参数 requestCode相同的话后面的定时器会将前面的定时器"覆盖"掉,只会启动最后一个定时器,所以同一时间的定时器可以用同一个requestCode,不同时间的定时器用不同的requestCode。

<br/>

第二个参数 requestCode不同,以及设置最后一个flags参数为PendingIntent. FLAG_UPDATE_CURRENT可以保证每次点击notification进入activity,传的参数都是当前这个notification传过去的(Intent里附带的参数)。如果 requestCode相同,最后一个参数为PendingIntent. FLAG_UPDATE_CURRENT,那么所有未点击的notification里的参数都会被更新为最后一个传过去的,也就是最新的。

flags的取值有四个:

FLAG_ONE_SHOT:获取的PendingIntent只能使用一次

FLAG_NO_CREATE:利用FLAG_NO_CREAT获取的PendingIntent,若描述的Intent不存在则返回NULL值

FLAG_CANCEL_CURRENT:如果描述的PendingIntent已经存在,则在产生新的Intent之前会先取消掉当前的

FLAG_UPDATE_CURRENT:能够新new一个 Intent

举个栗子:

通过notification向activity传递一个数字,第一个通知传递1,第二个通知传递2。(notification的notifyCode不同,保证两个notification都能显示出来)现在两个通知均是弹出来未点击状态。

点击测试结果如下:

好了,文章到这里就结束啦,如果本次分享的requestcode和PendingIntent requestCode flags 参数问题对您有所帮助,还望关注下本站哦!