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));
相关文章推荐
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android LocalBroadcastManager提高应用安全性
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- 【BroadcastReceiver】Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- android中LocalBroadcastManager的使用
- [Android Pro] Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android 4 学习(13):Local Broadcast Manager & Intent Filter
- 【Android】LocalBroadcastManager 注册的广播对 PendingIntent 无效
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android 之使用LocalBroadcastManager,源码解析
- Android LocalBroadcastManager 与 BroadcastReceiver
- Android LocalBroadcastManager与BroadcastReceiver
- android两个fragment的使用localBroadcastManager来传递参数
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android英文文档翻译系列(6)——LocalBroadcastManager
- Android中LocalBroadcastManager的使用
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android 之LocalBroadcastManager