BroadcastReceiver 为了实现系统广播而提供的组件
一、广播的种类
无序广播是一种异步的广播传播机制,当广播发送出去以后,所有广播接收器几乎会在同一时间收到广播。
有序广播是一种同步的广播传播机制,当广播发送出去以后,同一时刻只有一个广播接收器收到广播。
二、广播的注册方式
静态注册
在AndroidManifest 文件里注册,如果使用Androidstudio创建广播的话会自动在配置文件里注册的。
动态注册
Activity里的oncreate()方法里写registerReceive()
动态注册的广播要注意销毁 在onDestroy()方法里执行 unregisterReceive()进行销毁
三、广播的发送
(1)发送无序广播
Intent intent =new Intent("");//写 intent -filter 的action
sendBroadcast(intent);
这里是写静态注册的广播接收器的 其实就是一个标志 动态的话就是自己起名字了 <intent-filter><action
android :name=""/></intent-filter>
(2)发送有序广播
Intent intent =new Intent("")
sendOrderedBroadcast(intent ,null);
这里是写静态注册的广播接收器的 其实就是一个标志 动态的话就是自己起名字了 <intent-filter><action
android :name=""/></intent-filter>
注册的时候可以修改程序收到广播的优先性 优先级高的广播接收器,优先收到广播
具有较高优先级的广播接收器具有对广播的传递控制
如果广播接收器在onReceive()方法里调用了 abortBroadcast(),那么广播就会被截断
四、广播的接收
新建类继承自BroadcastReceiver 重写onReceive()方法
在onReceive(){
//具体的业务逻辑代码
}
示例:
五、本地广播的使用
本地广播是指只能接受自己应用程序内的广播,解决了一些安全问题,并且本地广播只可以动态注册
具体使用如下: