Android:基础知识学习(是否使用过本地广播,和全局广播有什么差别?)

Hello,朋友们!今天有个朋友突然问我本地广播与全局广播的差别,特此来总结一下自己的见解!

一、本地广播

首先我们要知道,为什么使用本地广播?

本地广播即LocalBroadcastReceiver,仅在自己的应用内发送接收广播,也就是只有自己的应用能收到,数据更加安全广播只在这个程序里,而且效率更高!

引入本地广播的机制主要是为了解决安全性的问题:

1.正在发送的广播不会脱离应用程序,担心app的数据泄露;

2.其他的程序无法发送到自己的应用程序内部,不担心安全漏洞。(比如:如何做一个杀不死的服务---监听火的app 比如微信、友盟、极光的广播,来启动自己。)

3.发送本地广播比发送全局的广播更高效(全局广播要维护的广播集合表效率更低。全局广播,意味着可以跨进程,就需要底层的支持。)

LocalBroadcastReceiver不能静态注册,只能采用动态注册的方式。

LocalBroadcastReceiver使用:

(1)注册

LocalBroadcastManager.getInstance(this).registerReceiver(new XXXBroadCastReceiver(), new IntentFilter(action));

(2) 取消注册:

LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver)

二:全局广播

BroadcastReceiver是针对应用间、应用与系统间、应用内部进行通信的一种方式

BroadcastReceiver可以静态注册,也可采用动态注册的方式。

BroadcastReceiver 使用:

(1)制作intent(可以携带参数)

(2)使用sendBroadcast()传入intent;

(3)制作广播接收器类继承BroadcastReceiver重写onReceive方法

(4)在java中(动态注册)或者直接在Manifest中注册广播接收器(静态注册)使用registerReceiver()传入接收器和intentFilter

(5)取消注册可以在OnDestroy()函数中,unregisterReceiver()传入接收器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容