本节课学习四大组件最后一个, 广播接受者。 顾名思义广播接受者就是接受广播呗。比如在现实社会中,以前每个人家都有一台收音机,这可就可以去接受广播发出来的消息。大家都知道,程序世界也是参照的显示生活设计出来的,那在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 {//当接受到系统打电话的广播后调用@Overridepublic 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一相关推荐

  1. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  2. android进阶(九)-----Android四大组件的工作过程

    一.四大组件的运行状态 android四大组件中国除了BroadcastReceiver以外,其他三种都必须在AndroidManifest中注册,对于BroadcastReceiver既可以在And ...

  3. Android四大组件系列7 Broadcast广播机制(上)

    一 概述 广播 (Broadcast) 机制用于进程或线程间通信,广播分为广播发送和广播接收两个过程,其中广播接收者 BroadcastReceiver 是 Android 四大组件之一.Broadc ...

  4. Android四大组件之BroadCastReceiver

    1. 基本概念 在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver 是对发送出来的Broadcast 进行过滤接受并响应的一类 ...

  5. Android四大组件---BroadcastReceiver

    前言: BroadcastReceiver(广播接收器),属于 Android 四大组件之一 在 Android 开发中,BroadcastReceiver 的应用场景非常多 今天,我将详细讲解关于B ...

  6. Android四大组件之——Broadcast学习总结

    1.Broadcast概念 是一个全局的监听器,属于Android四大组件之一.Broadcast(广播)是一种广泛运用的在应用程序(APP)之间传输信息的机制.而BroadcastReceiver( ...

  7. android 广播的权限,Android四大组件详解之BroadcastReceiver广播接收者

    Android四大组件详解---BroadcastReceicer广播接收者 广播有两个角色,一个是广播发送者,另一个是广播接收者. 广播按照类型分为两种,一种是全局广播,另一种是本地广播 全局广播: ...

  8. Android 四大组件通信核心

    前言 系列文章: Android Activity创建到View的显示过程 Android 四大组件通信核心 Android 系统启动到App 界面完全展示终于明白(图文版) 我们知道Android ...

  9. Kotlin第七章: Android四大组件

    1. 四大组件 四大组件是每一个Android人必须要会,要掌握的知识点,因为他们是我们在日常开发工作中打交道最频繁的组件,而且他们四个在不同的领域扮演着极其重要的角色. Activity: 负责用户 ...

  10. Android四大组件总结

    四大组件系列文章 Activity总结和补充:Activity总结和补充_fdsafwagdagadg6576的博客-CSDN博客 Android Binder&Aidl理解和补充:Andro ...

最新文章

  1. 北京迎“豪宅元年”:四环房价将迈入8万元时代
  2. Shell编程进阶 1.7 case选择
  3. Visual C# 2008+SQL Server 2005 数据库与网络开发--13.1.3 简单记事本程序菜单设计
  4. 机器学习-预测之时间序列分析预测法原理及实战
  5. Leet Code OJ 168. Excel Sheet Column Title [Difficulty: Easy]
  6. Vue学习(vuex)-学习笔记
  7. How to bind multiple properties with formatter on one control
  8. error 1307 (HY000):Failed to create procedure
  9. SUSE Labs Con 2018有感
  10. vc ++ 如何做界面开发?
  11. 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教你详细的计算机hdmi接口功能...
  12. 电脑可以登录QQ但是却无法打开网页
  13. 网络基础3【网络层、数据链路层】
  14. 看 YGG SEA 如何玩赚东南亚市场 | AMA回顾
  15. Java注解方法实现BigDecimal保留两位小数(案例详解)
  16. leetcode:活字印刷
  17. 小程序paho.mqtt连接微消息队列 MQTT 版
  18. 基于java实现的学生档案管理系统毕业论文(可下载)
  19. RFID资产管理应用助力企业运营
  20. 【从入门到出图】全网最详细、最全+数据分享无套路

热门文章

  1. 网页制作的基本知识(标签)
  2. 说服力——教你做出专业出彩的演示PPT
  3. 替换url中某个参数的值或是添加某个参数的方法(js 分页上下页可以使用)
  4. iOS NSString的常用用法
  5. 远程工作两个月的体会(转)
  6. IE游览器的扩展事件
  7. 如何 给给软件开发 添加 代理_如何从“菜鸟码农”变成“一线架构师”?
  8. LabVIEW--为控件添加说明信息
  9. Maven 用Eclipse创建web项目后报错的解决方式
  10. 你觉得你非常了解Javascript?