Android 四大组件学习之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,广播接受者相比就很好学。但是很好学不代表没用,其实四大组件都是很有用的。

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

时间: 2024-08-02 02:45:28

Android 四大组件学习之BroadcastReceiver一的相关文章

Android 四大组件学习之BroadcastReceiver四

本节学习系统中特殊的广播接收者. 我们前面几节不是说了,当广播接受者一旦注册到系统中,当系统发送的广播和你注册的广播的action匹配时,系统就会启动广播接收者所在的进程.除非用户手动停止广播接收者所在的进程.但是生活中有这样一种情况,比如说:我在玩网络游戏,假设说游戏本身在系统电量低的情况下,会自动保存当前游戏的进度,也就是存档的.可以这么说,此广播接受者只有在用户玩游戏时才需要启动,别的时候用户是不需要的.如果此广播接收者一直常驻于系统,那不是很浪费系统资源.所以我们就需要动态的启动广播接收

Android 四大组件学习之BroadcastReceiver二

上节学习了如何创建一个广播,也尝试接受系统打电话的广播.本节课学习如何自定义广播.自定义广播实质上也就是创建一个发送广播者,创建一个接受该广播者. 那我们就开始行动吧. 先创建一个发送广播的应用: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont

Android 四大组件学习之Activity一

Activity是Android四大组件中最基础也是最常用的组件之一.Activity作为一个应用程序组件,提供了一个与用户交互的界面.可以这么说Activity是和用户操作有密切相关的的,常用来负责与用户交互,可以通过setContentView来显示组件. 今天我们学习如何去创建一个Activity 第一步: 创建一个Android Application Project, 填入应用名称,工程名称,包名 点击Next下一步:下面的选择都是默认的. 直到 你就可以选择一个Activity进行创

android四大组件学习总结以及各个组件示例(1)

android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个Activity通常就是一个单独的屏幕(窗口). (2)Activity之间通过Intent进行通信. (3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity. (4)Activity生命周期>什么是

Android 四大组件学习之ContentProvider一

ContentProvider作为四大组件之一,那它存在一定是有原因的? 那为什么引用ContentProvider呢?  我们先看一个例子. 大家在生活中用手机,比如你按了360手机管家, 其中360手机管家就有一个短信,通话记录,联系人备份的功能.那手机里的短信,联系人都是存放在数据库中的 比如联系人的信息是存放在contacts2.db中.既然数据是存放在数据库中的,那360手机管家就必须拿到这个数据.但是contac2.db对别的用户是没有权限的.那360是如何拿到手机联系人这些信息呢?

Anroid 四大组件学习之BroadcastReceiver三

本节学习广播的分类. 广播分为无序广播和有序广播 无序广播: 广播发送者的action与广播接收者的action都匹配的话,所以广播介绍者都可以收到这条广播,并且没有先后顺序,可以认为是同时收到 有序广播: 广播发送者的action与广播接收者的action都匹配的话,所以广播介绍者都可以收到这条广播,但是有先后顺序,高优先级的先收到 既然知道什么是无序广播和有序广播后, 那我们举例说明: 那我们模拟生活中一个例子说明. 某高校正在举行体操比赛.这时候我们伟大的计算机学院就开会了. 院长将几个班

Android 四大组件学习之Activity六

本节学习Activity的状态保存与恢复. 先用例子开始: 布局文件主要是实现如下,大家自行编写 Activity逻辑代码: public class FiveActivity extends Activity { private Button setButton; private Button getButton; private EditText editText; private float value; @Override protected void onCreate(Bundle s

Android 四大组件学习之ContentProvider二

上节学习了什么是ContentProvider.以及ContentProvider的作用.以及什么是URL.本节就对上节学习的知识做一个实践,也就是定义自己的ContentProvider 好.实践是检验真理的唯一标准. 那我们就開始行动吧 第一步: 创建一个自己的ContentProvider,我取名为MyContentProvider public class MyContentProvider extends ContentProvider { @Override public int d

Android 四大组件学习之ContentProvider四

上节我们学习了怎样去读取系统短信以及插入一条短信到系统中. 本节我们学习怎样获取系统的联系人,以及插入一条联系人 好.废话不多说了,直接操作. 首先和读取短信一样,先找到联系人在数据库中的位置. 然后导出,查看数据库中的内容 上图就是怎样到数据库中找打系统的联系人数据,(看起来图画的有点乱,希望能看懂吧) 既然知道怎样能到系统的数据库找到数据.那我们就開始写代码实现吧: public class ReadContactActivity extends Activity { @Override p