前言
Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制。
概述
类似于中央下发的红头文件,一级一级向下发送,中间如果接收失败,发送就会终止。
发送过程中,可以终止。终止后,后续的接收者则无法接收(有一种特殊情况,请参考本文中特殊的广播接收者章节)。
有序广播注意项
有序广播特点:
- 可以终止广播
- 可以修改数据
有序广播遇到的坑:
- Android版本8.0及其之后的版本,有序广播必须动态注册
- 特殊的广播接收者
动态注册 接收有序广播
- 定义 4 个 广播接收者:模拟有序广播的接收
//广播接收者:有序广播-1
public class Test1Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String resultData = getResultData();
//有序广播里终止广播
//abortBroadcast();
setResultData("国家发放补贴800");
Toast.makeText(context, "省接收:"+resultData, Toast.LENGTH_SHORT).show();
}
}
//广播接收者:有序广播-2
public class Test2Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String resultData = getResultData();
setResultData("国家发放补贴600");</