尽管手动更改了额外功能,但未决意图的同一实例一次又一次被触发

akk*_*lis 0 android android-intent

我必须多次执行一项任务,任务是广播一个意图,该意图将被其他应用程序拦截。让我们说从App SenderReceiver。在Receiver应用程序中接收意图可以正常工作,我已经测试并保证:

我的方法是,我在Sender应用中创建了一个广播接收器,动作为SENDER_ACTION。我通过此操作创建了一个意图,frequency并使用key 和value 设置了一个额外项4。从中获取PendingIntent并设置10秒的警报,然后触发该意图。

想法是发件人应用程序将收到此意图,将所需的意图发送给RECEIVER应用程序,然后将频率值减小1,将其再次设置为该意图,创建待处理的意图并发出警报,然后再次触发。

因此,理想情况下,该频率计数器应达到0并终止处理。

我可以看到,虽然设置了frequency的减小的值,但它正在发生(以日志为单位),但是当我收到相同的不变值时。

我怀疑未决的Intent实例会一再触发。请问有什么身体可以帮助我为什么会这样吗?

Com*_*are 5

如果我不得不猜测-我这样做了,因为您没有提供源代码,那是因为您没有将正确的标志传递到其中getBroadcast()(或您PendingIntent用于获取PendingIntent实例的任何工厂方法)。请记住,默认情况下,Android会缓存PendingIntent对象并在Intent未修改其内部功能的情况下重用它们。考虑将传递FLAG_UPDATE_CURRENT作为的最后一个参数getBroadcast()