Activity 未收到来自 Service 的本地广播

2024-01-08

我有一个Activity我正在其中注册BroadcastReceiver本地如下:

public class SomeActivity extends Activity{

    public static final String PERFORM_SOME_ACTION = "PERFORM_SOME_ACTION";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.some_activity_layout);

        .....
        .....

        IntentFilter filter = new IntentFilter();
        filter.addAction(PERFORM_SOME_ACTION);

        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // perform some action ...
            }
        };

        registerReceiver(receiver, filter);
    }

    .....
    .....
}

我有一个Service我从中广播了Intent如下:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {        

    Intent i = new Intent(SomeActivity.PERFORM_SOME_ACTION);
    sendBroadcast(i);   /* Send global broadcast. */

    return START_STICKY;
}

这按预期工作。实现此功能后,我意识到本地广播更适合这种情况:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {        

    Intent i = new Intent(SomeActivity.PERFORM_SOME_ACTION);
    LocalBroadcastManager.getInstance(this).sendBroadcast(i);   /* Send local broadcast. */

    return START_STICKY;
}

不幸的是,上述方案不起作用。每次都会发送全局广播,而显然从未发送/接收本地广播。

我在这里缺少什么?本地广播无法在两个不同的应用程序组件之间发送,例如两个独立的应用程序组件Activitys 或来自 aService to an Activity?我究竟做错了什么??

Note:

根据文档 https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html,发送本地广播(一个应用程序内广播,其范围仅限于应用程序自己的组件)而不是全局广播(应用程序间每当我们不需要广播在应用程序外部传播时,广播就会传输到手机上的每个应用程序。这就是做出上述改变的原因。


我在这里缺少什么?

Use LocalBroadcastManager用于注册 LocalBroadcast,当前使用registerReceiverActivity 的方法用于注册全局广播:

LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Activity 未收到来自 Service 的本地广播 的相关文章

  • 我们什么时候应该在 Django 中使用“db_index=True”?

    当我们应该定义db index True在模型字段上 我正在尝试优化应用程序并且我想了解更多信息db index 什么情况下我们应该使用它 文档说使用db index True在模型字段上用于加速查找 但在存储和内存方面略有缺点 我们应该使
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Android Espresso 单击按钮时出现错误

    我正在尝试使用 espresso 框架为 Android 应用程序编写一些 UI 测试 现在我只是检查启动屏幕上是否存在所有元素 然后尝试单击登录按钮 单击按钮时 测试由于错误而失败 我似乎无法理解为什么会发生这种情况 我的测试代码是 Ru
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • bash:gitolite:找不到命令

    我正在尝试使用 Gitolite 在 Gitlab 中创建一个新分支 我完成安装步骤 当我遇到 设置 gitolite 部分时 我遇到了麻烦 我跟着这个link http sitaramc github com gitolite setup
  • 如何在 kubernetes 中将秘密标记为可选?

    来自文档 除非将秘密标记为可选 否则必须先创建秘密 然后再将其作为环境变量在 pod 中使用 引用不存在的 Secret 将阻止 pod 启动 如何将秘密标记为可选 您正在寻找的是 name ENV NAME valueFrom secre
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行
  • Azure Functions 计时器触发器线程安全

    我想知道是否有人知道如果您在 Azure 函数上设置了 Cron 设置 如果其任务执行时间超过 5 分钟 则每 5 分钟运行一次 会发生什么情况 它备份吗 或者我应该实现一个锁定功能 以防止某些东西 例如在循环中 处理先前调用已经处理的数据
  • SimpleIoC - 在缓存中找不到类型:Windows.UI.Xaml.Controls.Frame

    第一次由 SimpleIoC 实例化我的 ViewModel 时 我遇到了以下错误 我相信我已经按应有的方式设置了容器 但由于某种原因 我仍然收到以下错误 任何想法或帮助将非常感激 Microsoft Practices ServiceLo
  • svn 强制迁移

    我正在考虑将我们的 svn 代码库迁移到 perforce 看看谷歌搜索结果 我确实找到了两个具有相同功能的工具 P4转换ftp ftp perforce com pub perforce tools p4convert docs inde
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • React 错误:目标容器不是 DOM 元素

    我刚刚开始使用 React 所以这可能是一个非常简单的错误 但我们开始吧 我的html代码非常简单 load staticfiles
  • PLS-00103:遇到符号“;”当预期出现以下情况之一时:

    我正在尝试插入用户安全问题的答案 以用于密码重置功能 Ellucian 横幅 v8 提供了一个用于运行此 API 的 API 我对他们的 API 非常陌生 从下面的错误消息来看 我还远远没有正确运行它 任何帮助表示赞赏 我尝试在 Oracl
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private
  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci

随机推荐

  • 在重新启动时保留应用程序状态

    我一直在尝试通过序列化我的主应用程序来保留 iPhone 应用程序的状态UITabBarController using NSKeyedArchiver archiveRootObject toFile 但我遇到了困难 首先我遇到了一个问题
  • 在 NetBeans 上使用 Armadillo 库编译 C++

    我将编译包含犰狳库的 C 程序 通过命令行使用以下命令可以解决此问题 g arm cpp o example O1 larmadillo 但是 当我将 O1 larmadillo 添加到 NetBeans 项目的编译选项时 出现了大量错误
  • 将 csv 导入到 iPhone 的 coredata sqlite

    如何将 csv 导入到 sqlite iPhone 的核心数据 我尝试过使用 SQLite 管理器 但它将 csv 导入到新表中 我还需要导入一些日期 那么如何将数据导入到我的sqlite数据库中呢 我有 3 个具有不同属性的实体 并且在
  • 为什么 a++++b 不起作用?

    int main int a 5 b 2 printf d a b return 0 此代码给出以下错误 错误 需要左值作为增量操作数 但如果我在整个过程中添加空格a and b 然后就可以正常工作了 int main int a 5 b
  • Android - 启动时启动服务

    从我在 Stack Exchange 和其他地方看到的一切来看 我已经正确设置了所有内容 以便在 Android 操作系统启动时启动 IntentService 不幸的是它没有在启动时启动 并且我没有收到任何错误 也许专家可以帮忙 显现
  • 通过 SVD 从基本矩阵中提取翻译的正确方法

    我校准了相机并找到了内部参数 K 我还计算了基本矩阵 F 现在 E K T F K 到目前为止 一切都很好 现在我们将基本矩阵 E 传递给 SVD 以使用分解值 U W V 来提取旋转和平移 essentialMatrix K Transp
  • 是否可以获得正在运行的进程及其符号表的核心转储?

    是否可以获取 gdb 或使用其他一些工具来创建正在运行的进程及其符号表的核心转储 如果有一种方法可以在不终止进程的情况下执行此操作 那就太好了 如果可能的话 您会使用什么命令 我正在尝试在 Linux 机器上执行此操作 Or run gco
  • WPF 列表框包装

    我有一个列表框 在其中使用 ListBox ItemsPanel WrapPanel
  • solr 建议者未返回任何结果

    我已经按照 solr wiki 文章的建议几乎到了这里 http wiki apache org solr Suggester http wiki apache org solr Suggester 我的 solrconfig xml 中有
  • 为什么 static char* 需要常量初始化,而 static char** 不需要

    有人可以解释一下为什么这段代码 main c include
  • LDIF 文件错误?无效的格式?

    我目前正在使用 UNIX 服务器上的 LDAP 我现在的主要目的是通过命令行通过 Ldapmodify 修改目录中的两个条目 这command如下 ldapmodify a D cn ldap dc cs dc ttu dc edu w p
  • 为什么 EF 6 教程使用异步调用?

    最新的 EF 教程介绍了如何将 EF 6 与 MVC 5 结合使用 似乎倾向于使用对数据库的异步调用 例如 Department department await db Departments FindAsync id 这是新标准 最佳实践
  • F# 类型提供程序和持续集成

    F 类型提供程序的类型定义通常需要常量表达式 例如对于 SQL 类型提供程序 type dbSchema SqlDataConnection lt Data Source MySqlServer Initial Catalog MyData
  • https://www.facebook.com/app_scoped_user_id/ {app_scoped_id} 重定向到 Facebook 主页 [重复]

    这个问题在这里已经有答案了 我正在使用图形 APIv2 5获取应用程序范围内的用户 ID 最近 我无法使用以下方式访问用户个人资料https www facebook com app scoped user id https www fac
  • Qt 自定义模型需要做什么才能启用 drop?

    我正在尝试在我连接的自定义模型上启用拖放功能QTreeView 我做了以下事情 确保在上启用了acceptDropsQTreeView 在我的自定义模型上实现supportedDropActions to return Qt CopyAct
  • MACOSX下jenkins用户的密码是多少?

    我正在尝试使用 TestFlight Jenkings GitHub Sonar 为 iOS iPhone 和 iPad 创建 CI 我下载了 macosx jenkings 包 向导 看来它为我的 mac 创建了一个用户 它的密码是什么
  • 为什么 Bokeh 的情节不随情节选择而改变?

    努力去理解为什么这个散景视觉效果不允许我更改绘图并查看预测数据 出现绘图和选择 下拉式 菜单 但我无法更改菜单中项目的绘图 通过 Anaconda 运行 Bokeh 1 2 0 该代码已在 Jupyter 内部和外部运行 运行代码时不会显示
  • 使用实体框架 6.1.3 进行异步分页

    我是 EF 的新手 所以如果有什么地方做得不对 请提前道歉 我正在努力让分页与 EF 6 异步工作 我已经按照本文实现了分页机制 如何通过分页提高实体框架的性能 https developingsoftware com entity fra
  • file_put_contents 不返回值

    我在使用 file put contents 时遇到问题 我想我可以在 laravel php 中做这样的事情 response new stdClass key generateKey generates a 32 bit key dir
  • Activity 未收到来自 Service 的本地广播

    我有一个Activity我正在其中注册BroadcastReceiver本地如下 public class SomeActivity extends Activity public static final String PERFORM S