问题标签 [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.
android - Android - 每半秒发送一次本地广播是否存在严重的性能问题?
每半秒发送一次本地广播是否存在严重的性能问题?
android - 无法将值从本地 BroadcastManager 发送到活动
在这里,我调用 USSD 代码,然后尝试通过扩展 AccessibilityService 来读取相应的响应。这个过程运行良好。但我的问题是,当我尝试使用 LocalBroadCast 管理器将相应的数据(或值)传输到活动say(MainActivity.java) BroadcastReceiver 时,甚至没有被调用。
谁能帮助我使用 LocalBroadcastManager 将数据传输到活动?
请在下面找到我的 java 类。
MainActivity.java
UssdDemo.java
activity_main.xml
清单.xml
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,因此一旦我清楚如何使它们有效通信,就需要使用服务和广播重新实现:
android - 服务 bindService 与 LocalBroadcastManager
我有多个活动和一个始终运行的后台服务(请参阅此处的上下文)。
哪种方法更好,使用 bindService() 或在每个活动中使用 sendBroadcast() 和 BroadcastReceiver 的应用程序限制通知?
谢谢
android - Android LocalBroadcastManger 并不总是接收数据
我有一个片段TextView
。从我的应用程序的不同位置我想更新它TextView
,所以我正在使用LocalBroadcastManager
但它并不总是有效 - 事实上,当我禁用设备管理员(这是 MDM 应用程序)时,它“忘记”接收数据......
App.getAppContext()
是在我的 Application 类中声明的静态上下文。
在onResume()
我更新存储的消息时(因为我的片段并不总是出现。
我的接收者:
onStart / onStop:
我的日志:
在开始片段上
在简历片段上 - 消息:消息 1
更新状态 - 消息:消息 1
发送消息:消息 2
停止片段
在开始片段上
在简历片段上 - 消息:消息 2
更新状态 - 消息:消息 2
禁用管理员
发送消息:取消
就是这样......不再接收
android - 从 Fragment 到 Activity 的 Android LocalBroadcastManager 未收到消息
我想从 aFragment
向a 发送消息Activity
(不是Fragment
parent Activity
,只是另一个)。
实际上,我从一个Service
到另一个做同样的事情Activity
,而且效果很好。
这是我的代码:
Fragment
:
Activity
:
我刚刚关注了那个很棒的帖子,但它只适用Service
于Activity
我认为这与Context
from the 有关系Fragment
,也许getActivity()
不是正确的方法......
有任何想法吗?谢谢。
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
。
我怎样才能只接收一次广播?
android - LocalBroadcastManager 未在 Activity 中接收广播
我正在使用 LocalBroadcastManager 使用 APPLICATION CONTEXT 向我的活动和服务进行广播,如下所示:
现在在我的服务中使用监听器,我正在调用 broadcastUpdateUICommand() ,如下所示:
我正在我的活动中接收广播,如下所示:
mApp 是应用程序的实例。CommonForApp 是我的应用程序类。
但是在我的活动中,我没有收到任何广播(广播管理器是使用应用程序上下文初始化的)。
谁能建议我为什么在我的活动中没有收到广播?..
。提前致谢 !
android - 使用 LocalBroadcastManager 发送 PendingResult 参考(用于有序广播)
我想通过 LocalBroadcastManager 发送 PendingResult,因为 LocalBroadcastManager 似乎不支持有序广播。
我可以制作一个实现 Parcelable 的包装器对象,它包含对 PendingResult 的内存引用,然后将其粘贴到 Intent(根本没有任何序列化)?真正的问题是:使用 LocalBroadcastManager 通过 Intents 发送 Parcelables 时,对象内存引用是否完好无损,即 LocalBroadcastManager 是否真的只将 Intent 对象引用转发到我的应用程序中的不同位置?
或者
有一个更好的方法吗?
java - android LocalBroadcast的两个receiver,一个在MainActivity,一个在一个fragment
在一个 android 应用程序中,我在 MainActivity 的 onCreate 中注册了一个接收器
在其 onResume
坦率地说,我不确定我们为什么要使用这样的线程(我从某个地方复制了代码而没有完全消化它)。
此应用支持 ViewPager,因此在其关联的 Fragment 的 onCreate
在 MainActivity 和 Fragment 类中,接收器看起来像:
只有 onReceive 里面的内容在两个类中有所不同。
我不太了解 LocalBroadcast 的工作原理,我希望一旦发出广播,两个接收器处理程序都会运行。相反,我注意到大多数时候只有 MainActivity 中的接收器运行,偶尔在片段类中运行。
我的预感是与线程部分有关。