一.广播的分类:
1.标准广播:一种完全异步执行的广播,如图1所示:
图1
2.有序广播:一种同步执行的广播,如图2所示:
图2
二.广播的注册:
1.动态注册(在代码中注册):
code
2.静态注册(在AndroidManifest.xml中注册):
code
3.静态注册和动态注册的比较:
(1)动态注册:比较灵活,但是不能时刻进行监听;受生命周期的影响;
(2)静态注册:可以时刻监听,但是不够灵活;不受生命周期的影响;
4.静态注册和动态注册的应用场景:
(1)动态注册:屏幕亮灭、电量变化等(对于这种频繁发生的事件,用静态注册的方式会影响系统的性能)。
(2)静态注册:监听设备的启动(用动态注册的方式无法做到)。
三.自定义广播
1.自定义标准广播:
code
2.自定义有序广播:
code
四.本地广播:
1.为什么使用本地广播:
与本地广播相对的是系统全局广播,这样的广播发出之后是可以被其它的应用程序所接收,这样容易引起安全性的问题,所以引入了本地广播的概念,其发送的广播事件不被其他应用程序获取。
2.注意:本地广播只能被动态注册。
3.本地广播:
code
五.粘性广播:
1.定义:
粘性广播是一种持久化的广播,只要不被主动移除,发送后会长期存储在系统内存。
2.使用方式:
3.使用场景:
监控手机里面电池电量状态和充电状态等信息。
4.危害:
安全性问题:粘性广播发出的广播内容会一直在系统滞留,如果有敏感信息,会被其他恶意应用获取,是不够安全的。