Android-Broadcast(广播)

 
1、四大组件之BroadcastReceiver
(1)Broadcast(广播)--一种广泛运用在应用程序之间传输信息的机制
(2)BroadcastReceiver(广播接受者)--是对发送过来的广播进行过滤接收并响应的一类组件,它就是用来接收来自系统和应用中的广播
(3)用途:开机(或网络状态改变、或电池电量改变)时产生一条广播
(4)大大的减少开发的工作量和开发周期
(5)发送:把信息装入一个Intent对象(如Action、Category)
                  通过调用相应的方法将Intent对象以广播的形式发送出去【sendBroadcast( ),sendOrderBroadcast ( ).sendStickyBroadcast ( )】
(6)接收:当intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的intentFilter(注册器)是否与发送的intent相匹配,若匹配则就会调用BroadcastReceiver的onReceiver()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceiver()方法。
注意:BroadcastReceiver需要注册(静态注册、代码注册)
(7)注意!
①BroadcastReceiver生命周期只有十秒左右
②在BroadcastReceiver里不能做一些比较耗时的操作
③应该通过发送intent给Service,由Service来完成
④不能使用子线程
(8)广播的种类:普通广播(normal broadcast)、有序广播(优先级)、异步广播(粘滞性滞留广播)
(9)添加优先级代码:<intent-filter     android:priority="100"> ..............</intent-filter >
(10)截断广播方法:abortBroadcast( );
(11)静态注册:在配置文件中注册
(12)代码注册:IntentFilter intentFilter=new IntentFilter("BC_One"); 
                           BC2 bc2=new BC2( );
                           registerReceiver(bc2,intentFilter);
(13)普通广播
1、同级别的 动态加载优先级大于静态加载 (只在代码正常运行过程中,死掉了就不行)
2、同级别的接收顺序随机(无序)
3、接收器不能截断广播的连续性传播也不能处理广播
4、优先级高的先于优先级低的
(14)有序广播
1、同级别的 动态加载优先级大于静态加载
2、同级别的接收顺序随机(无序)
3、接收器能截断广播的连续性传播,高级别的广播接收器收到广播之后,可以决定把该广播是否截断
4、接收器能截断广播的连续性传播也能处理广播
原文地址:https://www.cnblogs.com/dendai-05/p/6945232.html