2

我们可以使用优先级吗

android:priority 

Context.sendBroadcast

也或者它会给出不同的结果

Context.sendOrderedBroadcast

谢谢

4

1 回答 1

6

不,您不能使用android: prioritywith sendBroadcast。正如文档所说:

android: priority 

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

现在看看我们知道sendBroadcastwhich 是 aNormal broadcast

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

对于sendOrderedBroadcast,这是一个Ordered broadcast

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

于 2013-11-10T09:56:39.023 回答