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的更多相关文章

  1. Android——Broadcast Receive 相关知识总结贴

    Android系统中的广播(Broadcast)机制简要介绍和学习计划 http://www.apkbus.com/android-99858-1-1.html android----BroadCas ...

  2. BroadCast Receive 生命周期

    BroadCastReceiver 简介 BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastRecei ...

  3. android Broadcast 总结

    1, 生命周期 在android官方文档中,推荐我们在onResume中进行 registerReceiver, 在onPause中进行unRegisterReceiver. 他们给出的理由是: If ...

  4. android Broadcast介绍

    在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件.发送Broadca ...

  5. Android Broadcast Receiver 使用入门

    Broadcast Receiver 的使用        1.Broadcast Receiver简介        2.Broadcast Receiver接收系统自带的广播        3.自 ...

  6. Android Broadcast Receiver注册

    之前有关 Broadcast Receiver的链 动态注册 1.我们新建一个广播接受类,我们创建一个内部类让他继承BroadcastReceiver,并且重新其中当有广播来到时执行的方法onRece ...

  7. Android -- Broadcast接收

    Broadcast是Android四大组件之一,是一种广泛运用的在应用程序之间传输信息的机制.最经典的举例是: “我们拿广播电台来做个比方.我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特 ...

  8. Android Broadcast Security(转)

    原文地址:http://drops.wooyun.org/tips/4393 0x00 科普 Broadcast Recevier 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件.很多广 ...

  9. android Broadcast广播消息代码实现

    我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...

随机推荐

  1. Spring IOC 少

    控制反转好处 IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式.所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给sprin ...

  2. web 系统原理之路由器和交换机的区别

    工作层次不同: 交换机主要工作在数据链路层(第二层) 路由器工作在网络层(第三层). 转发依据不同: 交换机转发所依据的对象时:MAC地址.(物理地址) 路由转发所依据的对象是:IP地址.(网络地址) ...

  3. 6.(转载)SSRF漏洞挖掘经验

    SSRF 漏洞的寻找 一.从WEB功能上寻找 我们从上面的概述可以看出,SSRF是由于服务端获取其他服务器的相关信息的功能中形成的,因此我们大可以 列举几种在web 应用中常见的从服务端获取其他服务器 ...

  4. BZOJ 1858【线段树】

    题意:  0 a b 把 [a, b] 区间内的所有数全变成0  1 a b 把 [a, b] 区间内的所有数全变成1  2 a b 把 [a,b] 区间内的所有数全部取反  3 a b 询问 [a, ...

  5. python之02数据类型学习-作业练习

    题目: 购物车程序 salary = 5000 1. iphone6s 5800 2. mac book 9000 3. coffee 32 4. python book 80 5. bicyle 1 ...

  6. ASP.NET控件之RequiredFieldValidator控件

    作用:对textbox或者其他输入框进行非空验证: 属性:ControlToValidate (选择要指向的控件) ErrorMessage(错误,输入要显示的错误信息) 应用方法: 原型: Demo ...

  7. bzoj 3944: Sum(杜教筛)

    3944: Sum Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4930  Solved: 1313[Submit][Status][Discuss ...

  8. poj 1635 Subway tree systems(树的最小表示)

    Subway tree systems POJ - 1635 题目大意:给出两串含有‘1’和‘0’的字符串,0表示向下搜索,1表示回溯,这样深搜一颗树,深搜完之后问这两棵树是不是同一棵树 /* 在po ...

  9. 洛谷P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L…

    P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L… 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many simi ...

  10. NAT模式下设置 虚拟机linux(Centos7) 联网

    第一步 设置虚拟机网络为NAT模式 第二步 设置虚拟机网络配置 首先执行 cd /etc/sysconfig/network-scripts 之后VI 编辑 ifcfg-ens33(根据实际情况来 基 ...