BroadcastReciever的作用:用于监听/接收应用发出的广播消息,并做出响应
应用场景 :
a. 不同组件之间通信(包括应用内 / 不同应用之间)
b. 与 Android 系统在特定情况下的通信(如网络可用时,电话呼入时)
c. 多线程通信
实现原理:
Android中的广播使用了设计模式中的观察者模式

1)广播接收者通过Binder机制在AMS注册;
2)广播发送者通过Binder机制向AMS发送广播;
3)AMS根据广播发送者要求,在已注册的列表中寻找合适的广播接收者;
4)AMS将广播发送到合适的广播接收者相应的消息循环队列中;
5)广播接收者通过消息循环拿到此广播,并回调onReceiver;
自定义广播接收者
-
继承自BroadcastReceivre基类
-
必须复写抽象方法onReceive()方法
- 广播接收器接收到相应广播后,会自动回调onReceive()方法
- 一般情况下,onReceive方法会涉及与其他组件之间的交互,如发送Notification、启动service等
- 默认情况下,广播接收器运行在UI线程,因此,onReceive方法不能执行耗时操作,否则将导致ANR。

本文介绍了BroadcastReceiver在Android中的作用,如组件间通信、系统交互等。详细讲解了其实现原理,包括观察者模式的应用。同时阐述了自定义广播接收者的方法,以及静态和动态注册的区别。此外,还提到了四种广播类型:普通广播、系统广播、有序广播和本地广播,强调了它们的特点和使用场景。
7059

被折叠的 条评论
为什么被折叠?



