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


相关文章推荐

四大组件之BroadCastReceiver(无序广播和有序广播)

实际开发中,有时会用到广播。广播分两种:无序广播和有序广播。注册的时候也同样分为静态注册和动态注册,具体什么情况下该选择哪种方式,我只能说:根据需求。 下面是代码,不赘述,注释说明也比较详细,我相信...

android-BroadcastReceiver 发送有序广播

普通广播(Normal Broadcast): 一,优缺点:和有序广播的优缺点相反! 二,发送广播的方法:sendBroadcast() 有序广播(Ordered Broadcast):...

Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播

BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播 本篇文章包括以下内容: 前言 BroadcastReceiver的简介 ...

BroadcastReceiver(有序广播)

上次我们了解无序广播,今天我们来了解了解有序广播,有序广播是通过Context.sendOrderedBroadcast来发送。所有的receiver依次执行。 BroadcastReceiver可...

四步实现ChromeLikeSwipeLayout效果

SETP1 水滴效果看到水滴效果第一反应是画一条闭合曲线,随着MotionEvent事件,改变绘制过程中的半径,完成拉伸效果;SETP2 下拉刷新;SETP3 动画;SETP4 完善...
  • ashqal
  • ashqal
  • 2015年12月08日 15:59
  • 2796

PackageManagerService 调用apkfilterservice的LOG

C:\Users\chenqi>adb shell shell@UEStudent:/ $ logcat | grep ApkFilterService logcat | grep ApkFilt...

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

BroadcastReceiver所对应的广播分两类:普通广播和有序广播。 普通广播:通过Context.sendBroadcast()方法来发送,它是完全异步的。 所有的receivers(接收...

Android组件- 广播的静态动态有序无序与优先级

设计模式中有一种比较常用的模式——观察者模式:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时接收某一个主题对象的消息。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新...

android之旅16 自定义广播与无序有序广播

发送广播 //发送广播,其实很少用到,除非很大型的APP或者平台。 public void click(View v){ Intent intent = new Intent(); i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android有序广播和无序广播的区别
举报原因:
原因补充:

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