PendingIntent

Posted 嘉禾世兴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PendingIntent相关的知识,希望对你有一定的参考价值。

PendingIntent表示一种即将发生的意图,和Intent的区别在于:PendingIntent是在将来的某个不确定的时刻发生,而Intent是立刻发生

典型使用场景是给RemoteViews添加单击事件,想要给RemoteViews设置单击事件,就必须使用PendingIntent

 第二个参数requestCode表示PendingIntent发送方的请求码,多数情况下设为0即可

PendingIntent的匹配规则为:如果两个PendingIntent它们内部的Intent相同并且requestCode也相同,那么这两个PendingIntent就是相同的。

Intent的匹配规则为:如果两个Intent的ComponentNameintent-filter都相同,那么这两个Intent就是相同的。(Extras不参加Intent的匹配过程)

第四个参数flag的含义

FLAG_ONE_SHOT:当前描述的PendingIntent只能被使用一次,然后它就会被自动cancel,也就意味着后续的send调用会失败

FLAG_NO_CREATE:当前描述的PendingIntent不会主动创建,如果当前PendingIntent之前不存在,则getXXX方法会直接返回null

FLAG_CANCEL_CURRENT:当前描述的PendingIntent如果已经存在,那么它们都会被cancel,然后系统会创建一个新的PendingIntent

FLAG_UPDATE_CURRENT:当前描述的PendingIntent如果已经存在,那么它们都会被更新,即它们的Intent中的Extras会被替换成最新的

以上是关于PendingIntent的主要内容,如果未能解决你的问题,请参考以下文章