废话
Android中的广播和现实生活中的广播有点相似,还记得小学时候,每到星期二的下午4点,学校就会放广播通知全校老师去开会,而我们学生就放学了,每次只要听到广播,全校学生都跑回教室拿书包回家。
学校的广播是对本校学生和老师发出的,老师和学生接收到广播后自己就处理自己的事情,老师去开会,学生回家,其实这和Android中的广播一样
Android中可以自己发出广播,也可以是系统发出广播,注册了广播的接收者就在接收到广播后就会处理自己的逻辑,下面我们来学习下广播的用法
定义一个广播接收器
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
可以看到定义一个广播接收器非常简单,但是不要忘了在AndroidManifest.xml中注册
<receiver android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true"/>
这样,我们的广播接收器就注册完成了
这样注册广播的方式为静态注册,还有一种方式是动态注册,是以内部类的形式去注册
发出广播
我们注册完广播接收器,需要接收广播,那么接收何种广播,广播又怎么发出呢,其实很简单,同样需要构建一个Intent
Intent intent=new Intent("yk.demo.send");
sendBroadcast(intent);
这样就可以发出广播了
注册广播
我们发出了广播之后怎么注册呢,其实也很简单,只需做如下修改
<receiver android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="yk.demo.send"/>
</intent-filter>
</receiver>
这样就注册了"yk.demo.send"这个广播
接收广播
我们注册了广播在哪里处理呢
我们可以看到刚才注册的广播接收器中有一个onReceive方法,我们就在这里进行处理
@Override
public void onReceive(Context context, Intent intent) {
}
在onReceive里面处理接收到广播后的逻辑
Android系统的很多操作和变化都会发出广播,比如点亮、屏幕、时间区域、关机、开机等,我们可以注册系统的广播,然后处理我们想处理的事情。
网友评论