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 ...
随机推荐
- 什么是消息循环,一个简单的win32程序如何运行?
预备知识 1.什么是句柄? (HANDLE) 在win32编程中有各种句柄,那么什么是句柄呢? #define DECLARE_HANDLE(name) struct name##_ { int un ...
- Qt Console Application
代码编译完生成的.o文件(又称对象文件,是可执行文件)和链接.o文件形成的.exe可执行文件都保存在“build-Project-Desktop_Qt_5_8_0_GCC_64bit-Debug”中. ...
- ibatis分页的两种方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- redis学习总结2
redis配置文件说明:以下这篇文章已经说明的很明白了.感谢~ http://blog.sina.com.cn/s/blog_636415010101970j.html
- 《OD学spark》20161022
一.Spark Core 1. 什么是Spark Shuffle Wide Dependencies *ByKey: groupByKey,reduceByKey 关联操作:join,cogroup ...
- 如何在app里利用js调取手机第三方地图--以高德地图和百度地图为例(2)
接着上篇文章说一下js调取第三方地图的问题,上次的方式是通过一个链接直接接到了第三方的web页面,又从第三方的web页面调用的第三方app;结果,这个方法被否定了,因为需求不是这样,需求直接就想调用第 ...
- Discuz!快速对接个人支付插件
## Discuz!快速对接个人支付插件 由于近期准备使用老牌论坛程序Discuz建立一个交流社区分享一些资源,但是测试了各种支付方式都不满意,偶然发现一个简直不要太完美的解决方案.今天抽时间搭建好并 ...
- 笔记-迎难而上之Java基础进阶1
Collection集合 数组的长度是固定的,集合的长度是可变的 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致. 集合框架 import java ...
- LCD浮点数显示函数的探讨
LCD浮点数显示函数的探讨 原创 2017年12月19日 单片机开放附赠的学习资料里面很少见到显示浮点数的函数,显示浮点数的操作也相当烦坠! 一般转换显示法 拿STM32单片机资源,我们选取ADC采样 ...
- 关于text-overflow实现·多余字符省略·的正确打开方式
1. 字符包裹元素要能控制宽度 2. 包裹元素中包含代码 .wrapper { ... text-overflow: ellipsis; overflow: hidden; white-space: ...