Android 中的广播机制
Android 中的广播机制
Android 中的广播,按照广播响应范围,可以分为应用内广播和全局广播。按照广播的接收方式,可以分为标准广播和有序广播。
广播的分类
- 响应范围
- 应用内广播:此类广播只能在应用内传播,其他应用无法获取
- 全局广播:系统中的所有广播接收器只要注册了对应的类型,都可以接收
- 接收方式
- 标准广播:一次发出,所有应用都会以无序的方式接收到广播消息
- 有序广播:所有的接收器将会按照一定的序列接收广播,且已经接收的可以终止广播的继续传递
以动态方式注册广播接收器
- 新建一个类,继承 BroadcastReceiver,重写其中的 OnReceive 方法,实现自己需要的功能
- 准备一个 IntentFilter,用于过滤要接收的消息
- 准备 Broadcast Receiver(实例化 BroadcastReceiver)
- 使用 registerReceiver 将 Broadcast Receiver 和 IntentFilter 绑定
- 在 OnDestroy 中使用 unregisterReceiver 取消广播接收器
以静态方式注册广播接收器
- 新建一个类,继承 BroadcastReceiver
- 在 AndroidManifest.xml 中注册此接收器(Android Studio 将会自动完成注册的步骤)
- 在 AndroidManifest.xml 中添加要监听的广播权限(如果需要,比如访问 wifi 的状态,开机启动等)
- 在 AndroidManifest.xml 中receiver 段中添加对应的 Intent Filter
注意:广播接收器中不应该执行那些时间很长的动作,也不应该执行那些可能引起阻塞的行为。接收器中不可以开启线程。
发送标准广播
- 准备一个 Intent,初始化内容为广播的名称(Intent 中还可以根据需要携带其他内容)
- 使用 sendBroadCast(Intent) 发送此广播
发送有序广播
- 准备一个 Intent,初始化内容为广播的名称(Intent 中还可以根据需要携带其他内容)
- 使用 sendOrderBroadCast(Intent) 发送此广播
有序广播在接受侧应该设置优先级,另外可以使用 abortBroadcast 禁止广播的继续传播
本地广播
发出的广播只能在应用内传递。
本地广播的发出
- 准备一个本地广播:LocalBroadcastManager
- 准备 Intent
- 使用 sendBroadcast 发出广播
本地广播的接收
- 准备 intentfilter
- 准备 LocalReceiver(继承自 BroadcastREceiver)
- 使用 registerReceiver 注册接收器
Android 中的广播机制的更多相关文章
- Android中使用广播机制退出多个Activity
谷歌百度一下,Android中退出多个Activity的方法,大家讨论的很多. 在实习的时候,看到公司的项目退出多个Activity,是采用LinkedList方法,毕业设计的时候,也参照了那种方法. ...
- Android中的广播Broadcast详解
今天来看一下Android中的广播机制,我们知道广播Broadcast是Android中的四大组件之一,可见他的重要性了,当然它的用途也很大的,比如一些系统的广播:电量低.开机.锁屏等一些操作都会发送 ...
- Android中Alarm的机制
本次给大家分析的是Android中Alarm的机制所用源码为最新的Android4.4.4.首先简单介绍如何使用Alarm并给出其工作原理,接着分析Alarm和Timer以及Handler在完成定时任 ...
- 浅析Android中的消息机制(转)
原博客地址:http://blog.csdn.net/liuhe688/article/details/6407225 在分析Android消息机制之前,我们先来看一段代码: public class ...
- 浅析Android中的消息机制(转)
在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- Android中的Parcel机制 实现Bundle传递对象
Android中的Parcel机制 实现了Bundle传递对象 使用Bundle传递对象,首先要将其序列化,但是,在Android中要使用这种传递对象的方式需要用到Android Parc ...
- 浅析Android中的消息机制-解决:Only the original thread that created a view hierarchy can touch its views.
在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- 浅析Android中的消息机制
在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- 探索Android中的Parcel机制(上)
一.先从Serialize说起 我们都知道JAVA中的Serialize机制,译成串行化.序列化……,其作用是能将数据对象存入字节流其中,在须要时又一次生成对象.主要应用是利用外部存储设备保存对象状态 ...
随机推荐
- Java中的代码块:局部代码块、构造代码块和静态代码块
代码块 java代码中用{ }括起来的代码段叫做代码块 1.局部代码块 在局部位置,用于限定变量的生命周期 例如,下面代码中的a仅在代码块中起作用,因此会编译报错 class Demo{ public ...
- Linux命令—tar
day 7:tar压缩.解压缩.打包.解包命令 区分打包和压缩:打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 为什么要区分这两个概念呢?这源于Li ...
- ubuntu18.04 VirtualBox 开启虚拟机出错 Kernel driver not installed (rc=-1908)
写的很明白了 提示缺少GCC PERL MAKE,安装 重试..... 重启VM 搞定....
- 车道线识别/Opencv/传统方法
车道检测(Advanced Lane Finding Project) 实现步骤: 使用提供的一组棋盘格图片计算相机校正矩阵(camera calibration matrix)和失真系数(disto ...
- 2017-2018-1 20155320 《信息安全系统设计基础》第四周学习总结(课堂实践补交+myhead与mytail加分项目)
2017-2018-1 20155320 <信息安全系统设计基础>第四周学习总结(课堂实践补交+myhead与mytail实现) 课堂实践内容 1 参考教材第十章内容 2 用Linux I ...
- WPF中使用WindowChrome自定义窗口中遇到的最大化问题
FrameWork 4.5 之后,内置了WindowChrome类,官方文档: https://msdn.microsoft.com/en-us/library/system.windows.shel ...
- PostgreSQL参数学习:wal_keep_segments
http://www.postgresql.org/docs/9.3/static/runtime-config-replication.html 参考官方文档: wal_keep_segments ...
- 创龙OMAPL138的NMI中断
1. 不可屏蔽中断部分代码,注册中断函数,6748有几个NMI的引脚? void InterruptInit(void) { // 初始化 DSP 中断控制器 IntDSPINTCInit(); // ...
- jQuery Validate (登录页面相关验证)
$(function() { var submit = false; var superHtml = []; /** * 匹配企业帐号,以字母开头,长度在6-20之间,只能包含字符.数字和下划线. * ...
- 二、Django用户认证之cookie和session
1.cookie原理 Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制.目前Cookie已经成为标准,所有的主流浏览器如IE.Netscape.Firefox.O ...