为什么80%的码农都做不了架构师?>>>   

在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信,所以对单个应用程序而言BroadcastReceiver是存在安全性问题的。

LocalBroadcastManager相对BroadcastReceiver,它只能用于应用内通信,安全性更好,同时拥有更高的运行效率。也是需要发送应用内广播时的官方推荐。BroadcastReceiver 的通信是走 Binder 机制的,而 LocalBroadcastManager 因为叫LocalBroadcast,可能让人产生一种它也是以 Binder 通讯方式为底层实现的错觉,实际底层实现并不一样,细看源码会发现是通过Handler来实现的。

1. LocalBroadcastManager 使用

LocalBroadcastManager 的使用跟一般 BroadcastReceiver 差别不大。

(1).自定义 BroadcastReceiver 子类

public class LocalBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {localMsg.setText(intent.getStringExtra(MSG_KEY));}
}

(2).注册接收器

LocalBroadcastReceiver localReceiver = new LocalBroadcastReceiver();
LocalBroadcastManager.getInstance(context).registerReceiver(localReceiver, new IntentFilter(ACTION_LOCAL_SEND));

(3).发送广播

LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(ACTION_LOCAL_SEND));

(4).取消注册

LocalBroadcastManager.getInstance(context).unregisterReceiver(localReceiver);


2. LocalBroadcastManager 实现

(1).LocalBroadcastManager 的核心实现实际还是 Handler,只是利用到了 IntentFilter 的 match 功能,至于 BroadcastReceiver 换成其他接口也无所谓,顺便利用了现成的类和概念而已;

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

3.LocalBroadcastManager好处

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

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

(3).比系统全局广播更加高效。

转载于:https://my.oschina.net/miger/blog/639797

Android碎碎念 -- 广播LocalBroadcastManager的实现相关推荐

  1. 每月碎碎念 | 2019.08

    Hi,这里是新开辟的"碎碎念"的世界. 这个区域作为记录心情的地方,把每日的所思所想所感所悟记录在这里,当做一个写日记的地方,每个月底汇总成一篇文章,只给我的朋友看. 不知不觉一个 ...

  2. 一个谷粉和3年的Google Reader重度使用者的碎碎念

    2013-03-14 上午看到Andy Rubin辞去Android业务主管职务.由Chrome及应用高级副总裁继任的新闻,还在想这会给Android带来什么,中午刷微博的时候就挨了当头一棒:Goog ...

  3. 每月碎碎念 | 2019.6

    Hi,这里是新开辟的"碎碎念"的板块. 这个区域作为记录心情的地方,把每日的所思所想所感所悟以及看到的比较有价值的文字记录在这里,当做一个写日记,分享价值的地方,每个月底汇总成一篇 ...

  4. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序

    『前端碎碎念』系列会记录我平时看书或者看文章遇到的问题,一般都是比较基础但是容易遗忘的知识点,你也可能会在面试中碰到. 我会查阅一些资料并可能加上自己的理解,来记录这些问题.更多文章请前往我的个人博客 ...

  5. 参加海峡两岸城市地理信息系统论坛2010 年会(一张图、规划信息化和空间句法的碎碎念)...

    上周末去清华建筑学院开了个会,叫做海峡两岸城市地理信息系统论坛2010 年会,主题很大,但是内容比较集中一些,就是围绕着GIS与城市规划.一天下来听了20个报告,挺佩服主办方的时间控制,这么密集的报告 ...

  6. Jerry的碎碎念:SAPUI5, Angular, React和Vue

    2019独角兽企业重金招聘Python工程师标准>>> 去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5 ...

  7. PMcaff写给大家的年终碎碎念 PMcaff | 记录

    今天是大年三十,2014马上就要结束了,送上新春祝福之前,碎碎念的小希有话想跟大家说. 瞧这一年 小米在硬件行业继续如鱼得水,科幻片里的智能家居生慢慢变成生活. 阿里巴巴在纳克达斯扬眉吐气了一把,一夜 ...

  8. 数据结构碎碎念(一)

    碎碎念 在大一学习C语言的时候,举过一个用栈实现的括号匹配算法,当时觉得很难,不过现在回顾起来,这个算法也算是比较简单的一个关于栈的应用了.而现在所常见的算法问题也都是什么中缀表达式转后缀表达式,双栈 ...

  9. 机器学习碎碎念:霍夫丁不等式

    点击上方"AI有道",选择"设为星标" 关键时刻,第一时间送达! 红色石头每天碎碎念一些机器学习知识和概念,大家一起学习,每天进步一点点!喜欢的话别忘了文末点赞 ...

  10. 花 1 个月收入购买一份保险之后,我的一点碎碎念!

    大家好,我是小詹,一个长得有些清秀的美男子.今天想跟大家聊一聊保险这件事.(纯属碎碎念,不要担心是广告或者推销哈哈哈) 去年年底开始有给自己购买一份保险的想法,最近经过几番了解对比,终于狠心花了一个月 ...

最新文章

  1. 树状dp(这个人写得好多转来慢慢看)
  2. Windows核心编程 第27章 硬件输入模型和局部输入状态
  3. python_面向对象
  4. 用开源NAC阻止非法网络访问
  5. WeihanLi.Npoi 近期更新
  6. oracle常用表查询,ORACLE EBS常用表及查询语句(最终整理版)
  7. shell脚本命令(记录)
  8. Android aidl Binder框架浅析
  9. spring 注解方式动态代理
  10. amd 服务器cpu型号怎么看,AMD CPU型号识别方法图解
  11. 数据库——实体联系模型
  12. 计算机q的n次方怎么表示什么,次幂
  13. 怎么从光缆缆标志区别是单模光缆还是多模光缆
  14. Cisco交换机IOS备份还原
  15. 限制不互素对的排列(构造)
  16. android 应用内部存储空间不足,安卓手机储存空间不足是什么原因 需要如何解决...
  17. 智慧城市同城V4 v2.2.5 [独立版全插件]同城 同城小程序 同城信息
  18. 【Spring】共性问题(九)
  19. SQL server 数据库视频总结
  20. OpenWrt之IPTV单线复用详细教程

热门文章

  1. 【LeetCode】【字符串】题号:*151. 翻转字符串里的单词
  2. 从零基础入门Tensorflow2.0 ----七、33 数据padding,模型构建,训练
  3. Download and Install R and RStudio for win10
  4. IDL | 实验三、IDL编程演练
  5. java做一个简单的银行账户演示程序_JAVA初学(七):银行账户演示程序
  6. 源码解析由于mysql驱动包升级, “LOAD DATA” 出现The used command is not allowed with this MySQL version错误
  7. php如何只删去汉字,php如何删除字符串中的中文
  8. Flink 使用大状态时的一点优化
  9. Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
  10. 耳机使用说明书 jbl ua_怎么挑选一款适合自己的蓝牙耳机?看看这篇文章!