有序广播和无序广播
* 无序广播:只要发出广播,感兴趣的接收者都可以接受这个广播
sendBroadcast(intent); 发送无序广播
* SD卡插拔、应用程序的卸载安装
* 有序广播:系统发出广播,接收者按照优先级从高到低一级一级地接受,类似中央的红头文件
sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras)
* intent :意图
* receiverPermission :指定接收者的权限
* resultReceiver :最终的广播接收者
* scheduler :Handler
* initialCode :广播编码
* initialData :设置广播的数据,接收者getResultData()获取数据
* initialExtras :把数据设置到bundle,数据量大的时候用
如:sendOrderedBroadcast(intent, null, new FinalReceiver(), new Handler(), 1, "补助10000元", null); 发送有序广播
abortBroadcast(); 拦截终止广播
setResultData("给每个码农补贴¥1000元"); 修改广播数据
* 接受者接受广播有先后顺序
* 优先级 1000 ~ -1000 {优先级可以是int范围的最大值,优先级最高}
* 高优先级的接收者可以拦截终止广播
* 高优先级的接收者可以修改广播里的数据
* 可以指定一个最终的广播接收者
最终的广播接收者:
public class FinalReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { System.out.println("最终接收者:"+getResultData()); } }
二种广播的区别之处:
* 能不能终止广播
* 能不能修改广播里的数据