Android Broadcast Receive
Broadcast Receive
广播接收(Broadcast Receive)为android的四大组件之一。主要用于监听广播消息,并做出响应。与应用程序中监听事件相比而言,该监听事件为全局监听。
Broadcast Receive分为两个部分,一个用于发送广播,一个用于接收广播。而发送广播的方式有两种,一种为发送普通广播,一种为发送有序广播。
广播使用步骤:
1. 在intent中写入发送的action。
2. 发送者通过sendBroadcast(intent)和sendOrderedBroadcast(intent, receiverPermission)两种方式进行发送。
3. 接受者继承BroadcastReceiver,并在onReceive方法中接收广播。
广播发送形式:
普通广播:
1. 该发送方式为异步发送,接受者几乎同一时刻接收。
2. 若无找到该广播接收者,应用不会发生异常。
3. 可通过intent进行信息传递。
4. 接收者未启动状态下,可接收广播,并在后台中启动该应用。
Intent intent = new Intent();
intent.setAction("com.mzzhang.broadcastsend.Normal");
intent.putExtra("message", "this is a normal broadcast");
sendBroadcast(intent);
通过定义Intent意图,并添加Action,最后通过intent进行信息传递。
而广播接收者继承broadcastReceiver会在onReceive中接收到广播发送的信息。
有序广播:
1. 通过接收者在AndroidManifest.xml中设置接收优先级Priority或在代码中动态设置setPriority。优先级范围-1000到1000,数值越大,优先级越高。
2. 可在发送广播中将广播进行中断,而后面的接收者将无法接收到广播通知。
3. 也可在优先级高的广播中添加信息,并传递给下个接收者。
4. 接收者在未启动广播情况下,会自动接收广播,并在后台启动该应用。
Intent intent = new Intent();
intent.setAction("com.mzzhang.broadcastsend.ordered");
intent.putExtra("message", "this is a ordered broadcast");
sendOrderedBroadcast(intent, null);
该启动方式与普通广播方式一致。区别在于sendOrderedBroadcast。
广播接收:
1. 广播接收继承BroadcaseReceive,并在onReceive中接收该广播。
2. onReceive为主线程,若在onReceive中响应时间过长会照常ANR。
3. 若需要长时间操作可通过广播发送一个命令启动Servie。
4. 监听方式可分为动态监听和静态接听方式。
静态监听注册方式:
<receiver android:name="com.mzzhang.broadcastsend.ReceiveNormal">
<intent-filter android:priority="">
<action android:name="com.mzzhang.broadcastsend.Normal"/>
<action android:name="com.mzzhang.broadcastsend.ordered"/>
</intent-filter>
</receiver>
其中android:priority为优先级时使用
动态监听注册方式:
IntentFilter filter=new IntentFilter("com.mzzhang.broadcastsend.ordered");
filter.setPriority();
ReceiveTwo receiver = new ReceiveTwo();
registerReceiver(receiver, filter);
在onReceive接收,并添加信息。
Bundle extras = new Bundle();
extras.putString("message", message.toString());
setResultExtras(extras);
在下个优先级中接收,并获取上个结果信息。
Bundle bundle = getResultExtras(true);
结束往下传递:abortBroadcast();
Android Broadcast Receive的更多相关文章
- Android——Broadcast Receive 相关知识总结贴
Android系统中的广播(Broadcast)机制简要介绍和学习计划 http://www.apkbus.com/android-99858-1-1.html android----BroadCas ...
- BroadCast Receive 生命周期
BroadCastReceiver 简介 BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastRecei ...
- android Broadcast 总结
1, 生命周期 在android官方文档中,推荐我们在onResume中进行 registerReceiver, 在onPause中进行unRegisterReceiver. 他们给出的理由是: If ...
- android Broadcast介绍
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件.发送Broadca ...
- Android Broadcast Receiver 使用入门
Broadcast Receiver 的使用 1.Broadcast Receiver简介 2.Broadcast Receiver接收系统自带的广播 3.自 ...
- Android Broadcast Receiver注册
之前有关 Broadcast Receiver的链 动态注册 1.我们新建一个广播接受类,我们创建一个内部类让他继承BroadcastReceiver,并且重新其中当有广播来到时执行的方法onRece ...
- Android -- Broadcast接收
Broadcast是Android四大组件之一,是一种广泛运用的在应用程序之间传输信息的机制.最经典的举例是: “我们拿广播电台来做个比方.我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特 ...
- Android Broadcast Security(转)
原文地址:http://drops.wooyun.org/tips/4393 0x00 科普 Broadcast Recevier 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件.很多广 ...
- android Broadcast广播消息代码实现
我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...
随机推荐
- Spring IOC 少
控制反转好处 IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式.所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给sprin ...
- web 系统原理之路由器和交换机的区别
工作层次不同: 交换机主要工作在数据链路层(第二层) 路由器工作在网络层(第三层). 转发依据不同: 交换机转发所依据的对象时:MAC地址.(物理地址) 路由转发所依据的对象是:IP地址.(网络地址) ...
- 6.(转载)SSRF漏洞挖掘经验
SSRF 漏洞的寻找 一.从WEB功能上寻找 我们从上面的概述可以看出,SSRF是由于服务端获取其他服务器的相关信息的功能中形成的,因此我们大可以 列举几种在web 应用中常见的从服务端获取其他服务器 ...
- BZOJ 1858【线段树】
题意: 0 a b 把 [a, b] 区间内的所有数全变成0 1 a b 把 [a, b] 区间内的所有数全变成1 2 a b 把 [a,b] 区间内的所有数全部取反 3 a b 询问 [a, ...
- python之02数据类型学习-作业练习
题目: 购物车程序 salary = 5000 1. iphone6s 5800 2. mac book 9000 3. coffee 32 4. python book 80 5. bicyle 1 ...
- ASP.NET控件之RequiredFieldValidator控件
作用:对textbox或者其他输入框进行非空验证: 属性:ControlToValidate (选择要指向的控件) ErrorMessage(错误,输入要显示的错误信息) 应用方法: 原型: Demo ...
- bzoj 3944: Sum(杜教筛)
3944: Sum Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4930 Solved: 1313[Submit][Status][Discuss ...
- poj 1635 Subway tree systems(树的最小表示)
Subway tree systems POJ - 1635 题目大意:给出两串含有‘1’和‘0’的字符串,0表示向下搜索,1表示回溯,这样深搜一颗树,深搜完之后问这两棵树是不是同一棵树 /* 在po ...
- 洛谷P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L…
P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L… 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many simi ...
- NAT模式下设置 虚拟机linux(Centos7) 联网
第一步 设置虚拟机网络为NAT模式 第二步 设置虚拟机网络配置 首先执行 cd /etc/sysconfig/network-scripts 之后VI 编辑 ifcfg-ens33(根据实际情况来 基 ...