android - 是否可以多次激发一个 Intent ?

标签 android broadcastreceiver android-intent

我有一项执行数据库调用的服务。该服务接收带有 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/

相关文章:

java - 显示后如何检测每个 RecyclerView item

java - 如何通过按外部对象字段的值进行选择来构建查询

android - 发送短信的广播接收器

Android 在一个 fragment 中广播

android - 使用 SimpleAdapter 时,单击 URL 会导致 ListView 中出现强制关闭错误

android - 将改造错误作为 gson 模型处理

java - Android 中来电的 BroadcastReceiver 不起作用

android - 从相机捕获的图像未显示(OnActivityResult)

android - 安装后 2 个 Activity 会产生 2 个图标

android - 在 Android Studio 中打开这样一个项目的最简单方法是什么? (并让它启动!)