全局广播:BroadcastReceiver
本地广播:LocalBroadcastManager 用来在同一个应用内的不同组件间发送Broadcast进行通信。
好处:
1.发送的广播只在自己的APP内传播,确保私隐信息不会泄露
2.其他app无法向自己的APP发送广播,不用被其他App干扰
3.比全局广播更高效
设定本地广播只能动态注册,无法注册到AndroidManifest,因为其设计的初衷就是不接受外部广播
本地广播的实现使用了观察者的设计模式
观察者模式:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。这种模式被广泛运用在各种消息传送触发的机制中。
基本使用:
1.获取单例实体
LocalBroadcastManager lbm=LocalBroadcastManager.getInstance(this);
2.注册广播
lbm.registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context,Intent intent){
}
},new IntentFilter("LOCAL_ACTION"));
3.发送广播
lbm.sendBroadcast(new Intent("LOCAL_ACTION"));
4.解绑
LocalBroadcastManager.getInstance.unregisterReceiver(lbm);