BroadcastReciever的作用:用于监听/接收应用发出的广播消息,并做出响应
应用场景 :
a. 不同组件之间通信(包括应用内 / 不同应用之间)
b. 与 Android
系统在特定情况下的通信(如网络可用时,电话呼入时)
c. 多线程通信
实现原理:
Android中的广播使用了设计模式中的观察者模式
1)广播接收者通过Binder机制在AMS注册;
2)广播发送者通过Binder机制向AMS发送广播;
3)AMS根据广播发送者要求,在已注册的列表中寻找合适的广播接收者;
4)AMS将广播发送到合适的广播接收者相应的消息循环队列中;
5)广播接收者通过消息循环拿到此广播,并回调onReceiver;
自定义广播接收者
-
继承自BroadcastReceivre基类
-
必须复写抽象方法onReceive()方法
- 广播接收器接收到相应广播后,会自动回调onReceive()方法
- 一般情况下,onReceive方法会涉及与其他组件之间的交互,如