问题标签 [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 投票
1 回答
58 浏览

android - Android - 每半秒发送一次本地广播是否存在严重的性能问题?

每半秒发送一次本地广播是否存在严重的性能问题?

0 投票
1 回答
231 浏览

android - 无法将值从本地 BroadcastManager 发送到活动

在这里,我调用 USSD 代码,然后尝试通过扩展 AccessibilityService 来读取相应的响应。这个过程运行良好。但我的问题是,当我尝试使用 LocalBroadCast 管理器将相应的数据(或值)传输到活动say(MainActivity.java) BroadcastReceiver 时,甚至没有被调用。

谁能帮助我使用 LocalBroadcastManager 将数据传输到活动?

请在下面找到我的 java 类。

MainActivity.java

UssdDemo.java

activity_main.xml

清单.xml

0 投票
4 回答
8236 浏览

android - Android 服务和活动之间的通信

见建筑

我想开发一个具有三个活动和两个服务的 Android 应用程序。

第一个服务名为WebClientService,每 30 秒调用一次 REST API,使用 Handler,并且必须将结果通知活动的 Activity。它还必须通知名为DatabaseService的第二个服务,以便更新本地数据库。

数据库服务将仅在活动的onCreate中调用一次(以防应用程序崩溃和重新启动),并且在onRestart时仅调用一次(这样我们就可以在出现连接问题的情况下显示数据)。多亏了每 30 秒通知“活动”活动的 WebClientService,活动将保持自己的更新。

问题是:

  • 通知活动活动和后台 DatabaseService 更新的最佳方式是什么?我的想法是在 WebClientService中使用sendBroadcast()并在每个活动和 DatabaseService 中使用BroadcastReceiver,这是正确的方法吗?

  • 我应该对 AllMeetingRoomActivity 和 DatabaseService 之间的通信使用相同的方法还是应该使用绑定服务

谢谢

更新: DatabaseService 将不再是后台服务,而只是 WebClientService 和活动之间的 db 层的共享实例。

所以现在的问题是:将我的 30 秒更新写入本地数据库并允许活动每隔几秒钟更新一次,只需从本地数据库读取,这是一个好方法吗?会不会太影响性能?

语境:

遵循我迄今为止实现的内容,但使用 SettableFutures,因此一旦我清楚如何使它们有效通信,就需要使用服务和广播重新实现:

0 投票
0 回答
177 浏览

android - 服务 bindService 与 LocalBroadcastManager

我有多个活动和一个始终运行的后台服务(请参阅此处的上下文)。

哪种方法更好,使用 bindService() 或在每个活动中使用 sendBroadcast() 和 BroadcastReceiver 的应用程序限制通知?

谢谢

0 投票
0 回答
102 浏览

android - Android LocalBroadcastManger 并不总是接收数据

我有一个片段TextView。从我的应用程序的不同位置我想更新它TextView,所以我正在使用LocalBroadcastManager但它并不总是有效 - 事实上,当我禁用设备管理员(这是 MDM 应用程序)时,它“忘记”接收数据......

App.getAppContext()是在我的 Application 类中声明的静态上下文。

onResume()我更新存储的消息时(因为我的片段并不总是出现。

我的接收者:

onStart / onStop:

我的日志:

在开始片段上

在简历片段上 - 消息:消息 1

更新状态 - 消息:消息 1

发送消息:消息 2

停止片段

在开始片段上

在简历片段上 - 消息:消息 2

更新状态 - 消息:消息 2

禁用管理员

发送消息:取消

就是这样......不再接收

0 投票
1 回答
1279 浏览

android - 从 Fragment 到 Activity 的 Android LocalBroadcastManager 未收到消息

我想从 aFragment向a 发送消息Activity(不是Fragmentparent Activity,只是另一个)。

实际上,我从一个Service到另一个做同样的事情Activity,而且效果很好。

这是我的代码:

Fragment

Activity

我刚刚关注了那个很棒的帖子,但它只适用ServiceActivity

我认为这与Contextfrom the 有关系Fragment,也许getActivity()不是正确的方法......

有任何想法吗?谢谢。

0 投票
1 回答
191 浏览

android - LocalBroadcastManager 广播未使用

Intent我广播的sLocalBroadcastManager似乎没有被消耗,而是在积累。每次我发送广播时,我都会收到它和之前发送的所有广播,在onReceive.

在期刊中JobService,我正在BroadcastReceiver使用 an创建一个IntentFilter并使用lbm.registerReceiver(receiver, intentFilter);. 然后我启动 a Service,它在其构造函数中创建Intent具有相同过滤器的 a ,并执行lbm.sendBroadcast(intent);一次,然后自行停止。 sendBroadcast返回 true ,表明它是在另一端收到的(请参阅是否有办法判断是否收到了 LocalBroadcastManager 广播?)。然而,每次重复此循环时,都会Intents再次接收所有先前接收到的信息。通过捆绑一个时间戳,我已经确认它真的是旧的只是躺在周围并被一遍又一遍地接收。

我如何“消费”收到的Intent?据我所知,如果它是由 onReceive 接收的,这应该是没有必要的。Intent我在或中找不到任何取消广播的方法LocalBroadcastManager

我怎样才能只接收一次广播?

0 投票
1 回答
5950 浏览

android - LocalBroadcastManager 未在 Activity 中接收广播

我正在使用 LocalBroadcastManager 使用 APPLICATION CONTEXT 向我的活动和服务进行广播,如下所示:

现在在我的服务中使用监听器,我正在调用 broadcastUpdateUICommand() ,如下所示:

我正在我的活动中接收广播,如下所示:

mApp 是应用程序的实例。CommonForApp 是我的应用程序类。

但是在我的活动中,我没有收到任何广播(广播管理器是使用应用程序上下文初始化的)。

谁能建议我为什么在我的活动中没有收到广播?..

。提前致谢 !

0 投票
2 回答
334 浏览

android - 使用 LocalBroadcastManager 发送 PendingResult 参考(用于有序广播)

我想通过 LocalBroadcastManager 发送 PendingResult,因为 LocalBroadcastManager 似乎不支持有序广播。

我可以制作一个实现 Parcelable 的包装器对象,它包含对 PendingResult 的内存引用,然后将其粘贴到 Intent(根本没有任何序列化)?真正的问题是:使用 LocalBroadcastManager 通过 Intents 发送 Parcelables 时,对象内存引用是否完好无损,即 LocalBroadcastManager 是否真的只将 Intent 对象引用转发到我的应用程序中的不同位置?

或者

有一个更好的方法吗?

0 投票
1 回答
367 浏览

java - android LocalBroadcast的两个receiver,一个在MainActivity,一个在一个fragment

在一个 android 应用程序中,我在 MainActivity 的 onCreate 中注册了一个接收器

在其 onResume

坦率地说,我不确定我们为什么要使用这样的线程(我从某个地方复制了代码而没有完全消化它)。

此应用支持 ViewPager,因此在其关联的 Fragment 的 onCreate

在 MainActivity 和 Fragment 类中,接收器看起来像:

只有 onReceive 里面的内容在两个类中有所不同。

我不太了解 LocalBroadcast 的工作原理,我希望一旦发出广播,两个接收器处理程序都会运行。相反,我注意到大多数时候只有 MainActivity 中的接收器运行,偶尔在片段类中运行。

我的预感是与线程部分有关。