码迷,mamicode.com
首页 > 移动开发 > 详细

Android 四大组件学习之BroadcastReceiver一

时间:2015-07-25 18:35:05      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:broadcastreceiver创建

本节课学习四大组件最后一个, 广播接受者。 顾名思义广播接受者就是接受广播呗。比如在现实社会中,以前每个人家都有一台收音机,这可就可以去接受广播发出来的消息。大家都知道,程序世界也是参照的显示生活设计出来的,那在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,广播接受者相比就很好学。但是很好学不代表没用,其实四大组件都是很有用的。




版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 四大组件学习之BroadcastReceiver一

标签:broadcastreceiver创建

原文地址:http://blog.csdn.net/longwang155069/article/details/47055457

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!