1.Android广播机制概述:
Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。
广播作为Android组件间的通信方式,可以使用的场景如下:
*同一app内部的同一组件内的消息通信(单个或多个线程之间);
*同一app内部的不同组件之间的消息通信(单个进程);
同一app具有多个进程的不同组件之间的消息通信;
*不同app之间的组件之间消息通信;
*Android系统在特定情况下与App之间的消息通信。
*广播分为静态注册和动态注册:
静态注册:在清代列表中注册
动态注册:在JAVA中注册
2.广播的类型:
*Normal Broadcast:普通广播
*System Broadcast: 系统广播
*Ordered broadcast:有序广播
*Sticky Broadcast:粘性广播(在 android 5.0/api 21中deprecated,不再推荐使 用,相应的还有粘性有序广播,同样已经deprecated)
*Local Broadcast:App应用内广播
3.普通广播:
所有监听该广播接受者都可以监听到该广播
*同级别接收先后顺序是随机的(无序)
*级别低的后收到广播
*接收器不能截断广播的继续传播,也不能处理广播
*同级别动态注册高于静态注册
4..System Broadcast: 系统广播
Android系统中内置了多个系统广播,只要涉及到手机的基本操作,基本上都会发出相应的系统广播。如:开启启动,网络状态改变,拍照,屏幕关闭与开启,点亮不足等等。每个系统广播都具有特定的intent-filter,其中主要包括具体的action,系统广播发出后,将被相应的BroadcastReceiver接收。系统广播在系统内部当特定事件发生时,有系统自动发出。
5.有序广播:
按照接收者的优先顺序来接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大优先级越高,可以终止广播的继续传播,接受者可以修改intent的内容。
*同级别接收顺序是随机的
*级别低的后收到
*能截断广播的继续传播,高级别的广播接收器接收广播后能决定时候截断。
*能处理广播
*同级别动态注册高于静态注册
6.广播的优势:
*安全性更高
*更加高效