Android--广播机制
1.Android中广播分为两种类型:
1)标准广播:完全异步执行的广播,在广播发出后,所有的广播接收器几乎会在同一时刻接收到,它们之间没有顺序可言,效率高,不可截断;
2)有序广播:同步执行的广播,广播发出后,同一时刻只会有一个广播接收器能够接收到的广播,当这个广播接收器中的逻辑执行完毕之后,广播才能继续传播,有序,可截断;
2.注册广播的两种方法:
1)动态注册:在代码中注册,需要程序先启动后才开始工作;
2)静态注册:在配置文件 AndroidManifest.xml 中注册,程序不启动的时候也可以接收广播;
3.动态注册自定义广播步骤:
1)创建 MyBroadcastReceiver 类,继承 BroadcaseReceiver 类, 并重写 onReceive() 方法;
2)创建 IntentFilter 类实例 intentFilter, 该类主要存放广播接收器需要接收的广播类型,调用 addAction() 方法添加;
3)注册自自定义广播:registerReceiver(myBroadcastReceiver, intentFilter);
4)活动销毁时需要取消注册:在 onDestroy() 方法中调用 unregisterReceiver(myBroadcastReceiver);
4.静态注册广播接收器:
1)创建 MyBroadcastReceiver 类,继承 BroadcaseReceiver 类, 并重写 onReceive() 方法;
2)在 AndroidManifest.xml 中添加 <receiver> 标签,并指定 name 属性为自定义广播接收器类的全类名;
5.在重写的广播接收器 onReceive() 方法内,以避免出现耗时的操作,否则可能引起程序崩溃;
6.发送自定义广播:
1)创建和注册自定义广播接收器,用于接收自定义广播;
2)创建 Intent 实例 intent,指定自定义广播类型;
3)在活动中调用 sendBroadcast(intent) 方法发送自定义广播;
注:这里 sendBroadcast() 方法发送的是标准广播;
7.发送有序广播:
1)具体步骤与上述类似,只是在发送广播的时候调用 sendOrderedBroadcast() 方法;
2)可以给 广播接收器设置不同的优先级 priority ,优先级高的接收器将先接收到广播;
3)先接收到广播的接收器可以调用 abortBroadcast() 方法来截断广播,这样后续的广播接收器将不再收到广播;
8.本地广播的使用:本地广播只能够在应用程序内部使用,它发出的广播将不会被其他应用程序接收,这样能够解决应用数据的安全性问题;
1)本地广播的使用与全局广播类似,只是在(取消)注册的注册时候是通过 LocalBroadcastManager 的 [un]registReceiver()方法来注册(取消);
2)本地广播只能在程序内部注册,而不能在 AndroidManifest.xml中注册;
Android--广播机制的更多相关文章
- Android随笔之——Android广播机制Broadcast详解
在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...
- Android广播机制的深入学习
部分内容转载自http://www.cnblogs.com/lwbqqyumidi/p/4168017.html 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者 ...
- Android总结篇系列:Android广播机制
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- Android广播机制概述
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- Android广播机制:Broadcast
转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...
- Android(java)学习笔记172:BroadcastReceiver之 Android广播机制
Android广播机制 android系统中有各式各样的广播,各种广播在Android系统中运行,当"系统/应用"程序运行时便会向Android注册各种广播.Android接收到广 ...
- Android广播机制(转)
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- Android广播机制
原文出处: Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的 ...
- Android(java)学习笔记115:BroadcastReceiver之 Android广播机制
Android广播机制 android系统中有各式各样的广播,各种广播在Android系统中运行,当"系统/应用"程序运行时便会向Android注册各种广播.Android接收到广 ...
- Android广播机制简介
为什么说Android中的广播机制更加灵活呢?这是因为Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来 ...
随机推荐
- PHP获取日期
<?php echo "今天:".date("Y-m-d")."<br>"; echo "昨天:".d ...
- MVC 自定义IModelBinder实现json参数转Dictionary<string, string>
IModelBinder的学习不算深入,现在用它来实现一个json转Dictionary<string, string> 一.原始json转Dictionary<string, st ...
- thinkphp关联模型的注意大小写
TP框架报错: think\Model:relation方法不存在 首先检查大小写,尤其是模型名称首字母大写 /**** 模型名字QqModel.class.php ***************** ...
- UVa 10055 - Hashmat the Brave Warrior
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...
- 测试table数据 winfrom datagridview 点击标头数字排序的时候table 列类型要为数字类型
public DataTable GenerateData(int NoOfRecord){DataTable tbl = new DataTable();tbl.Columns.Add(new Da ...
- python学习笔记2-functools.wraps 装饰器
wraps其实没有实际的大用处, 就是用来解决装饰器导致的原函数名指向的函数 的属性发生变化的问题: 装饰器装饰过函数func, 此时func不是指向真正的func,而是指向装饰器中的装饰过的函数 i ...
- java基础八 [序列化和文件的输入/输出](阅读Head First Java记录)
对象具有状态和行为两种属性.行为存在类中的方法中,想要保存状态有多种方法,这里介绍两种: 一是保存整个当前对象本身(通过序列化):一是将对象中各个状态值保存到文件中(这种方式可以给其他非JAVA程序用 ...
- scala 学习:object 和class, trait
object: Scala中没有静态修饰符,static,在object下的成员全部都是静态的,如果在类中声明了与该类相同的名字的object则该object是该类的"半生对象", ...
- nginx限制ip连接数和带宽
今天有个人问我,nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用了没有.下 ...
- oracle常用操作指令
1.cmd sqlplus /nolog; 2.conn sys/ as sysdba; 3.create user query identified by query;//创建用户 4.al ...