Android 对广播接收机使用优先级

Android 对广播接收机使用优先级,android,Android,我们可以使用优先级吗 android:priority 与 或者,它将给出不同于的结果 Context.sendOrderedBroadcast 谢谢不,您不能将android:priority与sendBroadcast一起使用。正如文件所说: android: priority 它控制执行广播接收器以接收广播消息的顺序。具有较高优先级的值在具有较低优先级的值之前被调用。(顺序仅适用于同步消息;异步消息忽略该顺序) 仅当您确实需要强制规定接收广播的特定顺序,或者想要强制Android

我们可以使用优先级吗

android:priority 

或者,它将给出不同于的结果

Context.sendOrderedBroadcast

谢谢

不,您不能将
android:priority
sendBroadcast
一起使用。正如文件所说:

android: priority 
它控制执行广播接收器以接收广播消息的顺序。具有较高优先级的值在具有较低优先级的值之前被调用。(顺序仅适用于同步消息;异步消息忽略该顺序) 仅当您确实需要强制规定接收广播的特定顺序,或者想要强制Android选择一种活动而不是其他活动时,才使用此属性

现在看看我们对
sendBroadcast
的了解,这是一种
正常广播

正常广播(与
上下文一起发送。sendBroadcast
)是完全异步(不有序)。广播的所有接收器通常同时以未定义的顺序运行。这更有效,但意味着接收器不能使用此处包含的结果或中止API

对于
sendOrderedBroadcast
,这是一种
有序广播


有序广播(通过
上下文发送。sendOrderedBroadcast
)一次发送到一个接收器。当每个接收器依次执行时,它可以将结果传播到下一个接收器,也可以完全中止广播,使其不会传递给其他接收器。可以使用匹配意图过滤器的
android:priority
属性控制运行中的订单接收者;具有相同优先级的接收器将以任意顺序运行。

虽然我想我已经回答了这个问题,但我不介意@commonware对此发表意见。.当将优先级与sendBroadcast一起使用时,接收者在清单文件中被调用的顺序。更改顺序会更改广播接收者的调用顺序。这是偶然的,还是真的遵循了这样的逻辑。是的,它确实遵循这样的逻辑。如果您觉得有帮助,接受答案将非常好:)我已经用
android:priority
在清单中的receiver标签中,即使我使用
sendBroadcast
方法发送广播,它也在工作。
android: priority