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,数值越大,优先级别就越高。


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

1.无序广播 通过Context.sendBroadcast()方法来发送,它是完全异步的。 所有的receivers(接收器)的执行顺序不确定,因此所有的receivers(接收器)接收broa...
  • ldc_123
  • ldc_123
  • 2016年10月12日 22:04
  • 626

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

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

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

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

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

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

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

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

android 学习笔记8-广播接收者 有序 无序广播 案例

1、广播接收者-可以在清单文件中定义,也可以在代码中注册。2、IP拨号器-利用接收拨打电话的广播,修改广播内携带的电话号码,重新发送广播。3、短信拦截4、开机自动启动软件5、自定义广播 6、广播的两种...
  • gaopinqiang
  • gaopinqiang
  • 2017年01月08日 20:38
  • 582

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

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

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

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

Android进阶之路 - BroadcaseReceiver(自定义广播、有序广播、无序广播、广播拦截、动态注册、静态注册)的详细使用方式

众所周知BroadcaseReceiver为Android中的四大组件之一,又名为广播、喇叭,这篇我为大家带来的就是BroadcaseReceiver的详细使用方式,说到使用其中又有些许不同,下面为大...
  • qq_20451879
  • qq_20451879
  • 2017年01月10日 20:15
  • 347

Android中广播的使用(动态、静态注册的区别,有序无序广播的使用)

首先区别一下静态注册和动态注册的区别:  1.常驻型广播  常驻型广播,当你的应用程序关闭了(进程没有被杀死时,也就是在后台运行时才能收到广播),如果有广播信息来,你写的广播接收器同样的能接收到,它的...
  • OONullPointerAlex
  • OONullPointerAlex
  • 2015年08月26日 23:51
  • 5332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android有序广播和无序广播的区别
举报原因:
原因补充:

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