我的用例流程:
FirebaseMessagingService
向Android发送一个通知请求,例如notif-instance-A
,其中包含Extra
有效载荷值value-A
的动作意图。FirebaseMessagingService
向Android发送第二个通知请求,例如notif-instance-B
,其中包含Extra
有效载荷值value-B
的动作意图。notif-instance-A
上的“操作”按钮,则我的BroadcastReceiver
将会以value-A
的意图被触发。notif-instance-B
上的“操作”按钮,则我的BroadcastReceiver
将会以value-B
的意图被触发。注意:#3和#4的顺序可以互换,用户可以按任意顺序点击通知。
如果只有一个通知,例如没有#2,#4的#1 +#3,或者没有#1,#3的#2 +#4。但是,如果涉及到 多个通知 ,则BroadcastReceiver将无法始终如一地获取正确的数据,有时甚至无法触发。以下是我的实验(在Android 8.0 AVD上)的观察结果,方法是将PendingIntent flag
传递给PendingIntent.getBroadcast()
:
value-A
也不是value-B
)触发的。notif-instance-A
按钮:用value-A
触发。notif-instance-B
按钮:未触发notif-instance-B
按钮:用value-A
触发。notif-instance-A
按钮:未触发value-A
也不是value-B
)。notif-instance-A
按钮:未触发notif-instance-B
按钮:用value-B
触发。notif-instance-B
按钮:用value-B
触发。notif-instance-A
按钮:未触发value-B
触发。value-A
触发。从实验来看,所有行为都不符合我的用例需求。用例听起来很简单明了,某种程度上我很难使它正常工作。任何线索可能是什么问题?谢谢。