尽管手动更改了额外内容,但会一次又一次地触发相同的待处理意图实例

时间:2013-01-12 13:52:22

标签: android android-intent

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

我是怎么做的, 我在Sender app中创建了一个广播接收器,其中包含动作SENDER_ACTION。 我使用此操作创建了一个intent,使用键frequency和值4设置了一个额外值。 从中获取PendingIntent并设置10秒的警报,并触发此意图。

想法是发送方应用,会收到此意图,会向RECEIVER应用启动所需的意图,然后将频率值减少1,再次将其设置为意图,创建待定意图并再次发出警报和火灾。

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

我可以看到,在设置频率的减少值时,它会发生(在日志中),但是当我收到相同的未更改值时。

我怀疑待处理的意图实例一次又一次地被触发。 有人可以帮助我,为什么会这样?

1 个答案:

答案 0 :(得分:5)

如果我不得不猜测 - 我这样做,因为你没有提供任何源代码 - 这是因为你没有将正确的标志传递给getBroadcast()(或者你在{{}上使用的任何工厂方法1}}获取PendingIntent实例)。请记住,默认情况下,Android会缓存PendingIntent个对象,并会重复使用它们,而其内部PendingIntent个附加内容未经修改。考虑将FLAG_UPDATE_CURRENT作为Intent的最后一个参数传递。