Android四大核心组件之BroadCastReceiver
实验内容
- 实现BroadCast发送和接受
- 通过BroadCast传递信息
- 动态注册和注销BroadCast
实验要求
- 实现BroadCast发送和接受
- 通过BroadCast传递信息
动态注册和注销BroadCast
实验步骤
- BroadCast Receiver概述:
用于组件和组件之间的通信,既可以在同一应用内,也可以跨应用。监听操作系统广播的事件等。广播是一种订阅--通知 事件,广播接收者向Android系统 register (订阅广播),广播发送者向Adnroid系统 sendBroadCast(发送广播),然后Android 系统通知所有注册该广播的接收者,广播接收者收到自己注册的广播之后实现自己想做的事情(该事情一般不超过10s,否则应用会出现ANR)。 - BroadCast的分类:
1.无序广播:也就是普通广播,只要注册了该action的广播接收者都能收到该广播,且没有先后顺序。
2.有序广播:广播接收者按照优先级高低依次接受该广播,并且优先接收的广播可以通过setResultExtras(Bundle)方法,将处理好的结果传送到下一个广播接收者那里。
3.粘性广播:发送广播调用的方法 sendStickyBroadcast(Intent),和sendBroadcast(Intent)不同。 粘性广播会一直保留在内存当中,直到有广播接收者注册该广播,该广播才算结束。 BroadCast Receiver实现
1、首先新建一个工程,命名为BroadCast_Test
2、在包名下新建一个类Receiver,并让其继承自BroadcastReceiver,如下图

图1
3、把广播接收器注册到,如下

图2
4、修改activity_main.xml文件,为其添加一个按钮,来触发响应事件,根据下面补全代码

图3
5、在MainActivity.java中添加相应的响应函数,如下

图4
6、运行程序后,可以看到如下效果

图5
点击按钮后我们再看Logcat的打印信息如下

图6
表明BroadCast成功的接收到了广播消息。
- 通过Intent传送附加信息
1、修改MainActivity.java,如下

图7
2、修改Receiver.java的内容,让其接收到消息并取出显示,如下

图8
3、再次运行程序,结果如下

图9
点击按钮后,再次查看Logcat信息如下

图10
成功接收消息并取出显示。
- 动态注册和注销BroadCast
1、修改AndroidManifest.xml文件,将之前的注册信息删除掉,选中代码后按下Ctrl+/ ,如下

图11
2、在activity_main.xml新增两个按钮来实现注册和注销Broadcast,如下所示

图12
3、在MainActivity.java为按钮添加相应代码

图13
其中第三部分为生成一个Receiver实例,接下来要用到。
4、为Broadcast指定一个地址,将Receiver注册到该地址上,一旦有应用程序往这个地址发送信息或广播,Receiver就可以侦听到,在Receiver.java添加代码如下

图14
5、接下来继续完善按钮事件监听方法,在MainActivity.java按下面修改代码

图15
6、再次rebuild然后运行如下

图16
首先点击发送按钮,查看Logcat并没有任何信息
然后点击注册按钮,然后再点击发送按钮,查看Logcat如下

图17
可以看到Receiver成功接收到了信息
再点击注销按钮,然后点击发送按钮,查看Logcat,并没有发现任何信息。
到这里就是关于Broadcast的基本使用。
Android四大核心组件之BroadCastReceiver的更多相关文章
- [置顶] Android四大组件之BroadcastReceiver
Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...
- Android 四大组件之“ BroadcastReceiver ”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- [转]Android四大核心组件:Activity+Service+BroadcastReceiver+ContentProvider
原文地址:http://c.biancheng.net/view/2918.html Android 作为一个移动设备的开发平台,其软件层次结构包含操作系统 (OS).中间件 (MiddleWare) ...
- Android四大组件之BroadcastReceiver
什么是BroadcastReceiver? BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播. 在Android系统中,广播体现在方方面面, ...
- Android四大组件:BroadcastReceiver 介绍
介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一.用于监听和接收广播消息,并做出响应.有以下一些应用: 不同组件之间的通信(应用内或不同应用之间). 多线程之间 ...
- Android四大组件之—— BroadcastReceiver的使用
BroadcastReceiver又名广播接收者.既然它用于接收广播,那一定就有人负责发送. Android系统中的广播: 在现实生活中,我们都知道广播是什么,用来做什么.例如公园里的广播,主要通知游 ...
- Android 四大组件之 BroadcastReceiver
0 简介 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的 广播. 在Android系统中,广播体现在方方面面,例 ...
- Android四大核心组件之Activity
一.活动生命周期 二.生命周期执行介绍 当该页面(Activity)被启动时 会执行onCreate().onStart().onRestart()这三个方法, 只有当onRestart() 方法执行 ...
- Android四大核心组件之Service
实验内容 启动Service 绑定Service 与Service进行通信 实验要求 启动Service 绑定Service 与Service进行通信 实验步骤 Service概述 Service通常 ...
随机推荐
- 转载:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
http://www.cnblogs.com/xbinworld/p/4273506.html 稀疏矩阵是指矩阵中的元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在9 ...
- 【html+css】关于页面布局中遇到的问题记录
关于行内元素: 行内元素设置width无效, height无效(可以设置line-height), margin上下无效,padding上下无效,margin和padding可设置左右. text ...
- Shell 编程基础之 && 与 ||
一.引言 Shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中.当 $? == 0 时,表示执行成功:当 $? == 1 时,表示执行失败.有时候,下一条命令 ...
- Gitbook简易教程
简介 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书.GitBook支持输出以下几种文档格式 静态站点:GitBook ...
- ACM: FZU 2110 Star - 数学几何 - 水题
FZU 2110 Star Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Pr ...
- How to parse HTML page data in Windows Phone
1. Navigate to page WebBrowser control browser.Navigate(new Uri("http://www.xxxx.com")); 2 ...
- listview改变单个单元格的背景色
ListViewItem lvi = listView1.Items[1]; lvi.UseItemStyleForSubItems = false; System.Windows.Forms.Lis ...
- 运行JSP时出现The requested resource (/proj3/MyJsp.jsp) is not available.(亲测有用)
网上回答一波一波,坑爹也是一波一波,自己尝试了好多方法,大家都知道路径有错但是都不知道自己路径错在哪里,所以那些回答等于废话一堆,无意用里面写好index.jsp测试发现了这个问题.少说废话直接上图测 ...
- Ubuntu使用阿里云软件源
如果在安装Ubuntu时,选择的地区为美国,建议更新为阿里云或国内 软件源 sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt ...
- 【SIGGRAPH】【最终幻想XV】的战斗场景实时演示的要点解说
[SIGGRAPH][最终幻想XV]的战斗场景实时演示的要点解说 原文:西川善司 http://www.4gamer.net/games/999/G999902/20160730004/ ...