本节课学习四大组件最后一个, 广播接受者。 顾名思义广播接受者就是接受广播呗。比如在现实社会中,以前每个人家都有一台收音机,这可就可以去接受广播发出来的消息。大家都知道,程序世界也是参照的显示生活设计出来的,那在Android系统中也引入了广播这个概念。那在Android系统中广播有什么作用呢? 举个例子:比如你正在玩游戏或者看视频突然手机电量过低,这时候就会弹出一个框,提醒您手机电量过低,请充电的提示。其实电量改变就是一种广播类型,当电量过低时,系统就会发生一条广播,这时候正在运行的程序就会收到,同时给用户提醒。在Android系统中广播有很多类型。比如: 开机,关机, 打电话, 发短信,屏幕解锁等。
在举例之前,我们先学会创建一个广播接受者
第一步:
创建一个java类,我取名为MyBroadcastReceiver。同时继承BroadcastReceiver
第二步: 当清单文件中注册(四大组件都需要注册)
<receiver android:name="com.ui.broadcastreceiver.MyBroadcaseReceiver"></receiver>第三步:需要配置你接受那种类型的广播,系统中广播那么多,你得指定你到底要接受那种类型的广播(比如我们接受电池电量过低的广播)
<receiver android:name="com.ui.broadcastreceiver.MyBroadcaseReceiver"> <intent-filter> <action android:name="android.intent.action.BATTERY_LOW"/> </intent-filter> </receiver>第四步:指定接受广播的权限,这个不是每个广播都必须要做的。 一般侵犯用户隐私的都需要加上权限,比如接受短信广播
<uses-permission android:name="android.permission.RECEIVE_SMS" />
既然学习了如何创建一个广播接受者,那我们就举例学习接受系统打电话的广播,当用户打电话时就会发出广播,这时候如果注册接受大电话的广播,就会调用我们的onReceiver方法。
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyBroadcaseReceiver extends BroadcastReceiver { //当接受到系统打电话的广播后调用 @Override public void onReceive(Context arg0, Intent arg1) { //得到广播中的电话号码 String number = getResultData(); Log.i("MyBroadcastReceiver", "有电话打出去了,号码是: "+number); } }
<receiver android:name="com.ui.broadcastreceiver.MyBroadcaseReceiver"> <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
是不是很简单,很好学。相比Activity,Service以及ContentProvider,广播接受者相比就很好学。但是很好学不代表没用,其实四大组件都是很有用的。
版权声明:本文为博主原创文章,未经博主允许不得转载。
Android 四大组件学习之BroadcastReceiver一
原文地址:http://blog.csdn.net/longwang155069/article/details/47055457