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会被替换成最新的

原文地址:https://www.cnblogs.com/anni-qianqian/p/8258622.html