android有序广播和无序广播的区别

转载 2012年03月26日 15:24:23
BroadcastReceiver所对应的广播分两类:普通广播有序广播
普通广播通过Context.sendBroadcast()方法来发送。它是完全异步的。
所有的receivers接收器的执行顺序不确定。    因此,所有的receivers接收器接收broadcast的顺序不确定。
这种方式效率更高。但是BroadcastReceiver无法使用setResult系列getResult系列abort系列API
有序广播是通过Context.sendOrderedBroadcast来发送。所有的receiver依次执行。
BroadcastReceiver可以使用setResult系列函数结果传给下一个BroadcastReceiver,通过getResult系列函数来取得上个BroadcastReceiver返回的结果,并可以abort系列函数来让系统丢弃该广播让,使用该广播不再传送到别的BroadcastReceiver
可以通过在intent-filter中设置android:priority属性来设置receiver的优先级。优先级相同的receiver其执行顺序不确定。
如果BroadcastReceiver是代码中注册的话,且其intent-filter拥有相同android:priority属性的话,先注册的将先收到广播。

有序广播,即从优先级别最高的广播接收器开始接收,接收完了如果没有丢弃,就下传给下一个次高优先级别的广播接收器进行处理,依次类推,直到最后。

这里接收短信的广播是有序广播,因此可以设置你自己的广播接收器的级别高于系统原来的级别,就可以拦截短信,并且不存收件箱,也不会有来信提示音。

实现方法是:

 

<receiver android:name=".SmsReceiver" >
   <intent-filter android:priority="100">
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />                    
   </intent-filter>
</receiver>

 

里面的android:priority="100"就是设定广播接收器的级别,这个值从1000~-1000,数值越大,优先级别就越高。


发送和接收无序广播或有序广播需要注意的问题

一:发送无序广播或有序广播 public class BroadcastActivity extends FragmentActivity implements View.OnClickListene...
  • yinzhijiezhan
  • yinzhijiezhan
  • 2015年10月18日 15:09
  • 1763

广播 有序和无序的区别 本地和全局的区别

http://h529820165.iteye.com/blog/1656778 普通广播(Normal Broadcast): 一,优缺点:和有序广播的优缺点相反! 二,发送广播的方法:s...
  • u012221046
  • u012221046
  • 2016年09月20日 21:17
  • 1193

Android BroadcastReceiver 广播分析;无序广播与有序广播优先级规则探讨

一、两种Broadcast: · 普通广播(Normal Broadcast):用sendBroadcast()方法发送。 普通广播是完全异步的,逻辑上可以在同一时刻被所有匹配的接受者接收到,消息...
  • flykozhang
  • flykozhang
  • 2015年12月22日 02:11
  • 2510

Android--广播的类型及拦截有序广播案例

在Android系统中,根据广播的执行顺序不同,可将其分为有序广播和无序广播。  1.有序广播 有序广播是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个...
  • winnie_hu
  • winnie_hu
  • 2017年06月02日 21:39
  • 488

android,自定义广播,最终广播接收者,防止拦截广播,有序广播,无序广播

自定义广播"com.itheima.xxxooo"  .   编写的FinalRecevier对象,是最终广播接收者。 即使前边拦截了广播,还是会收到广播。 public void click(...
  • yue31313
  • yue31313
  • 2014年02月23日 16:38
  • 835

说说Android的广播(1) - 普通广播,有序广播和粘性广播

对于Activity的启动流程,我们已经有了几个版本的分析了。这里我们分析一个更容易一些的,四大组件中最简单的Broadcast Receiver。关于Broadcast,有几点需要了解。首先是广播的...
  • lusing
  • lusing
  • 2016年06月08日 16:45
  • 2672

有序广播和无序广播

1.任务描述 二 编写 RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to...
  • qq_37723509
  • qq_37723509
  • 2017年06月05日 08:38
  • 70

Android中有序广播和无序广播

BroadcastReceiver所对应的广播分两类:有序广播和无序广播。 无序广播:通过Context.sendBroadcast()方法来发送,它是完全异步的。 所有的receiver...
  • Helene_me
  • Helene_me
  • 2015年03月06日 13:13
  • 563

有序广播和无序广播

1.任务描述 一·编写用户交互界面 代码效果图如下
  • qizimu
  • qizimu
  • 2017年06月01日 09:20
  • 95

Android无序广播最近使用整理——基础代码、权限

Android无序BroadCastReceiver最近使用整理之一——基础代码、权限        四大组件中,广播接收器是相对比较容易理解的,和日常生活中的广播类似,有发送者和接受者,发送者不关心...
  • klpchan
  • klpchan
  • 2013年09月26日 18:40
  • 1951
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android有序广播和无序广播的区别
举报原因:
原因补充:

(最多只允许输入30个字)