PendingIntent总结

/ Android / 没有评论 / 1642浏览

PendingIntent总结

介绍

PendingIntent是一种处于pending状态的意图,而pending状态表示的是一种待定、等待、即将发生的意思,就是说接下来又一个Intent(即意图)将在某个待定的时刻发生。可以看出PendingIntentIntent的区别在于,PendingIntent是在将来某个不确定的时刻发生,而Intent是立刻发生。PendingIntent典型的使用场景是给RemoteViews添加单击事件,因为RemoteViews运行在远程进程中,因此RemoteViews不同于普通的View,所以无法直接像View那样通过setOnClickListener方法来设置单击事件。要想给RemoteViews设置单击事件,就必须使用PendingIntentPendingIntent通过sendcancel方法来发送和取消特定的待定Intent

PendingIntent的主要方法

PendingIntent的匹配规则

如果两个PendingIntent它们内部的Intent相同并且requestCode也相同,那么这两个PendingIntent就是相同的。requestCode相同比较好理解,那么什么情况下Intent相同呢?Intent的匹配规则是:如果两个IntentComponentNameintent-filter都相同,那么这两个Intent就是相同的。需要注意的是Extras不参与Intent的匹配过程,只要Intent之间的ComponentNameintent-filter相同,即使它们的Extras不同,那么这两个Intent也是相同的。