背景:
我通过AlarmManager使用PendingIntent发出警报。
问题:
起初,我认为为了取消以前的警报,必须提供在启动警报之前使用的确切requestCode。
但是后来我发现我错了,正如取消API所述:
删除所有具有匹配意图的警报。任何警报,其意图与该警报相匹配(由filterEquals(Intent)定义)的任何类型的警报都将被取消。
查看“ filterEquals ”,文档说:
确定两个意图是否出于意图解析(过滤)的目的相同。也就是说,如果它们的动作,数据,类型,类和类别相同。这不会比较意图中包含的任何其他数据。
所以我不明白“ requestCode”是为了什么...
问题:
“ requestCode”是用来做什么的?
如果使用相同的“ requestCode”创建多个警报该怎么办?他们会互相覆盖吗?
If you truly need multiple distinct PendingIntent objects active at the same time (such as to use as two notifications that are both shown at the same time), then you will need to ensure there is something that is different about them to associate them with different PendingIntents. This may be any of the Intent attributes considered by Intent#filterEquals(Intent), or different request code integers supplied.