1、Android广播机制:
Android系统中的广播跟传统现实生活中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管“听不听”,也就是不管接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收。
Android系统中内置了很多系统级别的广播,如:
电池的状态(如:电量不足)
短信的接收和发送
电话的接听和拨打
系统闹钟
系统垃圾文件占用内存过多
等等,都会产生一条广播。
2、BroadcastReceiver组件:用于监听这些广播事件
BroadcastReceiver是Android系统的四大组件之一,它本质上就是一个全局的监听器,用于监听接收系统全局的广播消息。
Android中的广播机制设计的非常出色,很多操作原本需要开发者编码实现,现在只需等待广播告知自己就可以了,大大减少了开发的工作量和开发周期。
BroadcastReceiver运行机制:
BroadcastReceiver的运行机理比较简单,当系统或其他应用程序发送广播时,所有已经注册的BroadcastReceiver的应用程序就会检查注册时的IntentFilter里的Action是否与发送广播时的Intent的Action相匹配,若匹配则会调用BroadcastReceiver的onReceive()方法进行处理,所以主要工作是对BroadcastReceiver里的onReceive()方法的实现。
3、BroadcastReceiver的创建及使用
一、本地广播:
①、 创建一个类继承BroadcastReceiver,实现onReceive()方法
②、注册BroadcastReceiver
③、应用中构建Intent对象,设置其Action属性
④ 、利用sendBroadcast(Intent)方法发送广播
系统产生事件,发送广播,检查AndroidManifest.xml里注册每一个BroadcastReceiver的intent-filter里的action是否和第4步里的action匹配,如果匹配,生成相应的BroadcastReceiver对象,且调用其onReceive()方法,如果不匹配,则不生成Receiver对象。
二、系统广播:
①、创建一个类继承BroadcastReceiver,实现onReceive()方法
②、注册BroadcastReceiver(静态注册、动态注册)
③、构建IntentFilter标签,设置其Action属性
④、系统产生事件,发送广播,检查每一个BroadcastReceiver的intent-filter里的action是否和第3步里的action匹配,如果匹配,生成相应的BroadcastReceiver对象,且调用其onReceive()方法,如果不匹配,则不生成Receiver对象。
4、两种注册方式:
动态注册:在代码里注册
静态注册:在AndroidManifest.xml中注册;