Broadcast 广播机制
广播顾名思义是一种发送消息的工具,Android通过Intent发送广播消息,通过Broadcast Receiver接收消息(类似CAN总线,每个节点可以自由的发送帧,也可以自由的配置过滤器接收想要监听的帧)。
接收广播
接收广播需要使用广播接收器,而广播接收器就是一个继承BroadcastReceiver的类,类中的onReceive方法用于响应指定的广播消息。
广播的注册方式分为动态注册和静态注册:
动态注册就是通过内部类的方式创建接收器,在onCreate方法中配置过滤器。
静态注册就是在外部新建接收器类,在Manifest文件中配置过滤器。
发送广播
广播分为标准广播(Normal Broadcast)播和有序广播(Ordered Broadcast):
有序广播通过配置优先级决定先后顺序。
内容通过Intent传递,sendBroadcast或sendOrderedBroadcast方法发送。
本地广播
若要将广播的接收和发送限定在本app内,则需要使用本地广播。使用LocalBroadcastManager中的同名方法即可实现。本地广播只能通过动态方式注册。
书中未提到的
Android8.0以后出于性能的考虑对静态接收器的使用做了限制,因此书中全局广播的部分实验无法实现,细节参考本文。
本章的内容相对简单,实践部分则相对复杂,代码更新在我的git仓库