问题标签 [localbroadcastmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2019 浏览

android - 为什么 LocalBroadcastManager 不起作用?

我尝试学习 LocalBroadcastManager。在网上搜索并实现了一个简单的应用程序,其中包含两个活动来执行 LocalBroadcastManager。但它不起作用。我找不到我的代码有什么问题。请帮我!

这是我的代码。

第一活动.java

SecondActivity.java

AndroidManifest.xml

0 投票
1 回答
333 浏览

android - 确定应用程序是否已在不使用 OnStop() 的情况下关闭

我想要做的是在用户退出我的应用程序时向我的后端服务器发送一个注销请求(可能在任何活动期间发生,有很多)。

似乎我无法使用OnStop(),因为我有一个画廊选择器和相机 Intent 以及它们何时启动OnPause并被OnStop调用。我需要一种方法来明确知道该应用程序已关闭。

我已经阅读了有关使用Service/BroadcastReceiver甚至是LocalBroadcastManager,或者可能将请求绑定到单击主页按钮的信息。

我无法检查应用程序是否已发送到后台,因为这对于相机/图库 Intent 启动以及正在发送到后台的应用程序都是如此。我还尝试检查正在启动的活动的包名称,但这可能在其他设备上是可变的(例如,画廊可能有不同的包名称)。

非常感谢任何建议/方向。

编辑:我发现实际上没有办法拦截按下主页按钮。仍在寻找解决方案!

0 投票
1 回答
364 浏览

broadcastreceiver - 我可以分别在 onCreateView/onDestroyView 中注册/注销广播接收器吗?

我正在从AsyncTaskto广播数据(文件下载完成)Fragment并相应更新ListView

我已经读过广播接收器应该分别在onStart()/中注册/注销onStop()

onStop()但是在这种情况下,当应用程序不是前台但在后台运行(已调用但未onDestroyView()调用)时,我会错过已广播的数据。

那么要解决这个问题,我可以分别在onCreateView()/中注册/注销广播接收器onDestroyView()吗?

还建议是否有任何替代解决方案。

提前谢谢了。

0 投票
2 回答
541 浏览

android - sqlite插入/更新完成后如何触发sendBroadcast?

sqlite插入/更新完成后如何触发sendBroadcast?BroadCastReceiver 得到正确的广播。

我就是这样做的,但是 sendBroadcast 在插入/更新完成之前触发。

编辑

更具体地说,这里有更多代码我是如何做到的:

我的活动.java

DBDatabase.java

0 投票
4 回答
1379 浏览

android - IntentService LocalBroadcastManager 未到达接收方

我正在使用 Android Studio 1.3,我有一个IntentService收集一些数据并通过如下方式发送出去的设置LocalBroadcastManager

意向服务

上面的代码运行,但广播从未被捕获。

AndroidManifest.xml

扩展广播接收器的接收器(从不被调用)

主活动 onCreate()

我在这里做错了什么导致无法接收到广播?我想这与我的IntentFilter?

0 投票
2 回答
391 浏览

android - LocalBroadcastManager 不起作用

在我的 android 项目中,有一个活动和服务。在主布局中,我有三个控件:2 个按钮(开始和停止按钮)和一个 TextView(用于结果)。当我单击开始按钮时,服务将启动并通过 localbroadcastmanager 向主要活动发送一条短信,活动必须显示TextView 中的消息,但这没有发生。我还应该补充一点,我已将 Android 支持库 v4 添加到我的项目中,并且在运行应用程序时我没有收到任何错误和崩溃。我已经在真实设备和 genymotion 上测试了这些代码,但我没有得到想要的结果。如果您告诉我的代码有什么问题,我会:这是我的活动代码:

// 服务代码:

0 投票
2 回答
451 浏览

android - 当我将我的模块与该应用程序集成时,两个应用程序收到相同的通知消息

我正在使用 android studio,我在我的应用程序中实现广播,以便它应该只触发一个应用程序,我正在使用 Localbroadcastmanager 进行注册和注销

我已将MyModules与安装在一部 Android 手机中的两个应用程序集成。

当我从其他 Android 手机向APP1发送消息时,它会接收到 APP1 的消息但APP1APP2同时触发通知。

我的广播服务.java

我正在设置我的意图操作“com.notification.send”

AndroidManifest.xml

这是我的NotificationBroadcastReceiver.java

两个应用都在收听同一个广播,如何解决这个问题?

提前致谢

我通过使用 context.getPackageName() 解决了这个问题,我已经附加了我的操作

广播服务.java

AndroidManifest.xml

0 投票
1 回答
1032 浏览

android - 片段的 BroadcastReceiver onCreate 方法没有被调用

我的 Activity 中有一个简单的 Fragment,我在其中启用和禁用蓝牙适配器,并且我想使用 Fragment 中的 BroadcastReceiver 监听蓝牙适配器的状态变化。原因是我想在蓝牙状态更改时直接更改 Fragment 的 UI 元素。这是我的代码:

当我使用 Fragment 的 ActionBar 中的 Action Buttons 在我的设备中启用或禁用 BT 时,BT 会打开和关闭,但我的接收器永远不会被调用。我从来没有进入接收者的 onReceive 方法。我意识到这是一个很常见的问题,但是我尝试了几个解决方案,但都没有奏效(并且所有这些都包含在我当前的代码中)。

感谢您的任何建议!

0 投票
1 回答
2206 浏览

android - BroadcastReceiver的onReceive方法没有被调用

我有一个内部有 Fragment 和 IntentService 的 Activity。当我单击按钮对话框片段打开并输入我的数据。之后,我单击 Ok 并调用 getActivity().startService(intent)。服务通过 LocalBroadcastManager 调用 sendBroadcast(intent),但未调用 onReceive() 方法。怎么了?有我的广播接收器

我在这里注册接收器

我的 onDestroy 方法

和我在服务中发送广播的方法

0 投票
1 回答
828 浏览

android - 如果活动正在运行,则发送 LocalBroadcast 否则从后台服务发送通知

如果 Activity 正在运行,我需要使用 LocalBroadcast 从后台服务更新我的 Activity。如果应用程序或活动目前没有运行,我想添加一个待处理通知。

我浏览了以下帖子-

检查活动是否从服务运行

通过有序广播的活动或通知

我有以下疑问 -

  • 如何检查应用程序/活动是否从后台服务运行?
  • 如果我在我的活动中注册和取消注册 onPause() 和 onResume() 中的广播侦听器,我还需要检查活动是否正在运行吗?
  • 根据上面的链接#2 -If the activity is not on-screen, its receiver will not be registered, so the event will go to the default handler, in the form of your manifest-registered BroadcastReceiver, which will raise the Notification如果可能的话,如何实现这一点?

如果还有其他解决方案,也请分享。