广播可以分为有序、无序
BroadcastReceiver广播接收器可以分为静态和动态两种
普通广播:通过Context.sendBroadcast()方法来发送。它是完全异步的。
所有的receivers接收器的执行顺序不确定。 因此,所有的receivers接收器接收broadcast的顺序不确定。
这种方式效率更高!
有序广播:是通过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,数值越大,优先级别就越高。
分享到:
相关推荐
在" MyBroadcastTest "这个示例项目中,你可能会看到不同的BroadcastReceiver实现,分别展示了动态注册和静态注册的使用,以及如何处理有序广播。通过实践这些示例,初学者可以更好地理解BroadcastReceiver的工作...
在有序广播中,如果一个Receiver处理了广播并设置了`resultCode`和`resultData`,那么后续的Receiver可以获取到这些结果,这使得前一个Receiver有机会“拦截”广播并决定是否继续传递。如果前一个Receiver返回`...
本篇文章将深入探讨如何创建和使用一个`Android BroadcastReceiver`实例,特别是关注有序广播的发送。 首先,让我们理解什么是BroadcastReceiver。BroadcastReceiver是Android四大组件之一,它可以监听并响应系统...
有序广播会按照BroadcastReceiver的优先级进行处理,具有更高优先级的接收者会先接收到广播,然后依次是优先级较低的接收者。而普通广播则不保证接收者的执行顺序。 要创建一个有序广播,你需要遵循以下步骤: 1. ...
当我们谈论"Broadcast-有序广播"时,指的是Android中的有序广播机制。有序广播是Android系统中广播接收者处理广播意图的一种方式,其中接收者按照它们在AndroidManifest.xml文件中声明的优先级顺序逐个接收并处理...
7. **有序广播与无序广播**: 有序广播(Ordered Broadcast)按照接收者注册的顺序依次执行`onReceive()`方法,可以拦截并修改广播数据。无序广播(Broadcast)则是并行执行,无法拦截和修改广播数据。 通过...
在Android系统中,广播接收器(BroadcastReceiver)是应用程序组件之一,...例如,可以创建一个练习项目,包含动态和静态注册的BroadcastReceiver,分别处理一般广播和有序广播,从而更好地掌握其工作原理和使用场景。
在Android系统中,广播是一种非常重要的组件,它用于在应用程序之间传递消息。广播接收器(BroadcastReceiver)是Android四大组件之一,它可以...通过自定义广播和有序广播,我们可以实现更灵活的消息传递和处理机制。
有序广播(Ordered Broadcast)按照优先级进行接收,接收者可以拦截并修改广播数据;无序广播(Broadcast)则无法被拦截,所有匹配的接收者都会接收到广播,但接收顺序不可控。 - 广播事件可以通过Intent对象进行...
有序广播在Android系统中是一种特殊的广播机制,它与普通的广播不同之处在于,有序广播会按照接收者声明的优先级顺序逐个处理广播事件。在这个示例中,我们主要探讨的是如何作为发送端来发送有序广播。 在Android中...
与普通广播不同,有序广播会按照优先级依次执行每个接收者。优先级由`android:priority`属性决定,数值越大,优先级越高,先执行。如果两个接收者优先级相同,则按照它们在Manifest文件中声明的顺序执行。 2. **...
在发送有序广播时,我们通常会使用`sendOrderedBroadcast()`方法,该方法接受一个Intent和一个BroadcastReceiver的回调,用于处理广播接收完成后的响应。例如: ```java Intent intent = new Intent(...
有序广播(Ordered Broadcast)与普通广播(Broadcast)的主要区别在于接收顺序和可拦截性。在有序广播中,系统会按照注册接收器的优先级依次执行,而不仅仅是简单的全系统广播。接收器可以通过`android:priority`...
有序广播在Android系统中是一种特殊的广播机制,它与普通广播的区别在于接收者会按照特定的顺序依次接收到广播。在Android应用开发中,有序广播的使用对于某些需要控制执行顺序或者优先级的场景非常关键。下面我们将...
有序广播则是一种能够按照特定顺序接收并处理广播的机制,与普通广播(Parallel Broadcast)不同,普通广播会同时被所有注册的接收者接收,而有序广播则会按照优先级依次执行。 有序广播的工作原理: 1. 当发送一个...
在Android系统中,广播分为两种类型:有序广播(Ordered Broadcast)和无序广播(Unordered Broadcast)。有序广播可以按照优先级进行接收,接收者可以改变广播的数据,并且可以通过`abortBroadcast()`方法阻止广播...
有序广播(Ordered Broadcast)是Android系统中的一种特殊广播机制,它是Android系统用来在应用程序之间传递消息和数据的方式之一。在Android中,广播分为有序广播(Ordered Broadcast)和无序广播(Unordered ...
3. **类型**: 分为有序广播(Ordered Broadcast)和无序广播(Broadcast)。有序广播按照优先级顺序依次处理,而无序广播则同时分发给所有接收者。 **二、广播接收者的注册** 1. **静态注册**: 在AndroidManifest....
4. **有序广播和无序广播**:BroadcastReceiver有两种类型的广播,有序广播(Ordered Broadcast)和无序广播(Unordered Broadcast)。有序广播按照优先级依次执行,每个Receiver都能接收到前一个Receiver的处理结果...
有序广播(Ordered Broadcast)可以按顺序让多个接收器处理,而粘性广播(Sticky Broadcast)会在发送后保持在系统中,直到有新的广播覆盖它。 需要注意的是,由于Android系统的权限控制,对于需要在后台运行或者...