我们可以使用优先级吗
android:priority
和
Context.sendBroadcast
也或者它会给出不同的结果
Context.sendOrderedBroadcast
谢谢
我们可以使用优先级吗
android:priority
和
Context.sendBroadcast
也或者它会给出不同的结果
Context.sendOrderedBroadcast
谢谢
不,您不能使用android: priority
with sendBroadcast
。正如文档所说:
android: priority
它控制执行广播接收器以接收广播消息的顺序。具有较高优先级值的那些在具有较低值的那些之前被调用。(该顺序仅适用于同步消息;对于异步消息将被忽略。) 仅当您确实需要强制规定接收广播的特定顺序,或者想要强制 Android 优先选择一个活动而不是其他活动时,才使用此属性。
现在看看我们知道sendBroadcast
which 是 aNormal broadcast
:
普通广播(用 发送Context.sendBroadcast
)是完全异步的(不是有序的)。广播的所有接收器都以未定义的顺序运行,通常同时运行。这更有效,但意味着接收者不能使用结果或中止此处包含的 API。
对于sendOrderedBroadcast
,这是一个Ordered broadcast
:
有序广播(使用 发送Context.sendOrderedBroadcast
)一次传送到一个接收器。当每个接收器依次执行时,它可以将结果传播给下一个接收器,或者它可以完全中止广播,这样它就不会被传递给其他接收器。可以通过匹配intent-filter的属性来控制android:priority
运行的订单接收者;具有相同优先级的接收器将以任意顺序运行。