本节课学习四大组件最后一个, 广播接受者。 顾名思义广播接受者就是接受广播呗。比如在现实社会中,以前每个人家都有一台收音机,这可就可以去接受广播发出来的消息。大家都知道,程序世界也是参照的显示生活设计出来的,那在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方法就会被调用。
既然学习了如何创建一个广播接受者,那我们就举例学习接受系统打电话的广播,当用户打电话时就会发出广播,这时候如果注册接受大电话的广播,就会调用我们的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,广播接受者相比就很好学。但是很好学不代表没用,其实四大组件都是很有用的。
版权声明:本文为博主原创文章,未经博主允许不得转载。