我有一项执行数据库调用的服务。该服务接收带有 Intent 的请求,当数据库调用完成时,它会广播一个“更新完成” Intent ,指示调用已完成。
有时数据库已经填充了缓存数据,在这种情况下,我想立即广播一个“更新完成” Intent ,指示 Activity 应该显示缓存数据,然后一旦数据库更新就触发另一个“更新” complete” Intent 指示 Activity 应加载更新的数据。
问题是 Activity 从未接收到第二个广播。这是因为我正在重复使用已经触发的同一个 Intent 对象吗?
代码如下:
if (scheduleDatabase.populated()) {
intent.putExtra("fromCache", true);
getApplicationContext().sendBroadcast(intent);
}
scheduleDatabase.update();
intent.putExtra("fromCache", false);
getApplicationContext().sendBroadcast(intent);
更新: 如果我注释掉其中一个 Intent 广播,另一个总是触发并被接收。 此外,如果我使用相同的操作字符串创建两个 Intent 对象并分别触发它们,则 Activity 只会收到第一个对象。我还不清楚另一个是被解雇了但没有收到,还是根本就没有解雇。
最佳答案
事实证明,我在 Intent 方面遇到的问题是我代码的不同区域中存在更大问题的征兆。解决该问题后, Intent 开始按我的预期发射和接收。因此,要回答我自己最初的问题,是的,可以多次激发一个 Intent 。
关于android - 是否可以多次激发一个 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492859/