Broadcast Receiver

一.广播

1.在Android中,Broadcast在应用程序之间传输信息的机制,我们发送的广播内容是一个Intent

2.使用场景

1)同一个app具有不同进程的不同组件消息通信

2)不同app组件消息通信

3.广播种类

1)Normal 广播:Context.sendBroadcast

2)System 广播:Context.sendOrderedBroadcast

3)Local 广播:只在自身App内传播

二.实现广播

1.静态注册:注册完就一直运行,即使activity销毁了  还在

2.动态注册:跟随activity的生命周期  Activity销毁时,一定要解除广播,否则内存泄露

三.广播实现机制

1.自定义广播接受者BroadcastReceiver,复写onRece方法

2.通过Binder机制向AMS(activity Manager Service)进行注册

3.广播发送者通过Binder机制向AMS发送广播

4.AMS查找符合条件的(IntentFilter/Permission)Broadcast相应的消息循环队列中

5.消息循环执行拿到此广播,回调BroadcastReceiver的onReceive方法

四.LocalBroadcastManager详解

1.只在App内传播,不担心隐私泄露

2.其他App无法对你的App发送该广播,不担心收到非自身应用发送的广播

3.比系统的广播高效

eg主线程中

eg高效率的原因是内部通过Handler,实际是他通过发送一个handler的message实现

所以其他应用也不能发送该应用

你可能感兴趣的:(Broadcast Receiver)