广播分为发送者与接收者,广播接收者是安卓的四大组件之一。活动和服务这两个组件都可以发送广播。
广播的发送,按照发送方式来区分,安卓有有序广播和无序广播,有序广播发送之后,系统根据广播接收者的优先级进行派发,接收者可以修改广播传递的数据且可以终止广播的数据。无序广播听说也会跟着优先级来进行派发广播,但是无法修改广播传递的数据且无法终止广播。
听说按照某种方式来区分,还有串行广播和并行广播,这个在官网是没有找到,估计是读了源码的中国人自己总结出的概念,目前这一块我还需要研究一下。
广播的接收者,按照注册方式来区分,有静态注册与动态注册,静态注册就是在Manifest文件中进行注册,动态注册就是在接收广播的组件,一般是活动或者服务中进行动态的注册。
android在8.0之后对于广播发送方式有了新的要求,即自定义广播的发送有了新的要求,首先对于静态注册的广播,发送广播的代码
it = new Intent("com.wind.action.ROTATION_CHANGED"); //这行代码就是要增加的,第一个参数是应用的包名,第二个参数是广播接收者在项目中的绝对文件路径 it.setComponent(new ComponentName("com.hejun.tesofbr", "com.hejun.View.MyReceiver")); sendBroadcast(it);
对于动态注册的广播,广播接收者的注册与广播的发送则和以前一样
android官方文档的中文版,再也不用担心跟不上android世界的步伐了https://developer.android.google.cn/about/versions/oreo/android-8.0https://developer.android.google.cn/about/versions/oreo/android-8.0