您的位置:首页 > 移动开发 > Android开发

Android--LocalBroadcastManager

2017-03-30 19:57 302 查看

概念

LocalBroadcastManager是Android Support包提供的一个工具类,称为局部通知管理器,是用来在同一个应用内的不同组件间发送Broadcast的,可代替Handler更新UI。

优点

使用LocalBroadcastManager有如下好处

发送的广播只会在自己App内传播,不会泄露给其他App,确保隐私数据不会泄露

其他App也无法向你的App发送该广播,不用担心其他App会来搞破坏

比系统全局广播更加高效

内部机制简单剖析

BroadcastReceiver的通信是走 Binder 机制的

LocalBroadcastManager 的核心实现实际还是 Handler,只是用到了 IntentFilter 的 match 功能,顺便利用了BroadcastReceiver 现有的类和概念而已。

因为是 Handler 实现的应用内的通信,自然安全性更好,效率更高。

使用说明

和系统广播使用方式类似:

先通过
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
获取实例

然后通过函数 registerReceiver来注册监听器

lbm.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Handle the received local broadcast
}
}, new IntentFilter(LOCAL_ACTION));


通过 sendBroadcast 函数来发送广播

lbm.sendBroadcast(new Intent(LOCAL_ACTION));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: