首先android中的广播分为静态注册和动态注册,最简单的区分就是在AndroidManifest.xml里面注册的就是静态广告,在代码里面使用Context.registerReceiver()注册的就是动态广播。静态广播跟随应用的整体生命周期,而动态广播在不用或者用过之后要进行注销(Context.unregisterReceiver()),防止资源浪费。
使用的时机:
一个广播可以监听多个action,但是同一个时刻,注意:两个action的时间连毫秒都是一样的也会进一个onReceive回调,意思就是一个onReceive只会对一个action生效,所以在同一时间收到多个action也只会调用多次的onReceive,并不会调用一次onReceive实现多个action!
广播还可以监听系统的action:
比如如果一个应用有系统权限并注册了静态广播,在对应action触发的时间就会触发广播回调,比如配置了开机的action,那么在开机的时候就会触发这个广播;
但是如果应用没有系统权限,那么配置了对应的action也拉不起注册的广播;
系统的action有很多,常见的就有开机、亮息屏、解锁、锁屏、网络状态、连接wifi\开关机、音量加减等。