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 ...
随机推荐
- Struts2学习第三课 访问Web资源
1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Contr ...
- JavaScript学习系列3 -- JavaScript arguments对象学习
在实际项目开发中,目前还是很少使用到JavaScript 中的arguments对象,那么它到底是干什么用的呢 arguments是JavaScript中的一个类数组对象,它代表传给一个正在执行的函数 ...
- JavaScript 异常 Exceptions
JavaScript提供了一套异常处理机制. 异常是干扰程序的正常流程的不寻常(但并非完全是出乎意料的)的事故. 当发现这样的事故时,你的程序应该抛出一个异常. throw语句中断函数的执行. 它应该 ...
- scrollView用法
在这里记下UIScrollView的用法,一来防止自己忘记,而来再通过这个回顾一下,发现一些新细节. UIScrollView的主要问题在布局上,我现在只用到了内容大小固定额也就是不是tableVie ...
- xsp4 命令行配置运行(CLI工具)
xsp不必单独安装,它会在安装xamarin studio的时候出现在bin目录下,当然xsp是开源的地址:https://github.com/mono/xsp 常规使用方式如下: --root G ...
- 托管调试助手 "PInvokeStackImbalance":的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管
在C#中一定要检查引用时的数据类型 WinAPI 的数据类型 默认是32位的,但是引用时外部的是 Long类型默认是64位的.所以引用时需要将 long 改为 int 型. 参照 http://blo ...
- Note: Bimodal Content Defined Chunking for Backup Streams
CDC算法给出了一个chunk的大小的最小值.最大值.平均值的界定. Method Using chunk existence information breaking-apart algorithm ...
- OpenStack基础知识-打包知识点
OpenStack是使用setuptools工具来进行打包,不过为了满足OpenStack项目的需求,引入了一个辅助工具pbr来配合setuptools完成打包工作. pbr (Python Buil ...
- .txt文件转换到Excel
背景 前几天,自己在实验室里做实验,我们的大偶像肖老师看见我了,把我宣到他的办公室,问我,这个怎么办.都是数字,两列数字,怎么排版到Excel上也显示两列数字.Oh My God! 这个我怎么知 ...
- 为什么要把系统拆分成分布式的,为啥要用Dubbo?
阅读本文大概需要 6 分钟. 作者:yanglbme 1.面试题 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 2.面试官心里分析 从这个问题开始就进行分布式系统环节了,好 ...