1.广播是什么
1.1定义:
即 广播,是一个全局的监听器,属于Android四大组件之一。Android广播分为两个角色:广播发送者和广播接受者
1.2广播的作用
监听 / 接收 应用 App 发出的广播消息,并 做出响应
1.3广播的应用场景
a.同一app内有多个进程的不同组件之间的消息通信。
b.不同app之间的组件之间消息的通信。
1.4广播的类型
广播的类型主要分为5类:
普通广播(Normal Broadcast)
系统广播(System Broadcast)
有序广播(Ordered Broadcast)
粘性广播(Sticky Broadcast)
App应用内广播(Local Broadcast)
1.5实现原理
Android中的广播使用了设计模式中的观察者模式:基于消息的发布 / 订阅事件模型。因此,Android将广播的发送者 和 接收者 解耦,使得系统方便集成,更易扩展。
2.广播接收器注册
注册的方式分为两种:静态注册、动态注册
2.1静态注册
a:注册方式:在AndroidManifest.xml里通过<receive>标签声明
b:属性说明

c:注册示例

App首次启动时,系统会自动实例化mBroadcastReceiver类,并注册到系统中。
2.2动态注册
a:注册方式:在代码中调用Context.registerReceiver()方法
b:具体代码如下:

特别注意
动态广播最好在Activity 的 onResume()注册、onPause()注销。
原因:对于动态广播,有注册就必然得有注销,否则会导致内存泄露
两种注册方式的区别

网友评论