android:priority 标签的用途是什么?

What is the purpose of android:priority tag?

android:priority<intent-filter> 中的用途是什么?因为我注意到当存在可以由(至少)两个应用程序处理的隐式意图时,会出现一个选择器(也称为 disambiguation dialog),可以选择这两个应用程序之一。但我认为当 app_1app_2 (例如 0 或 10)具有更高的优先级(例如 999) , Android 将始终选择 app_1 而无需选择器。

在处理过滤器描述的类型的意图时应该给予父组件的优先级。此属性对活动和广播接收器均有意义: 它提供了有关 activity 相对于也可以响应该意图的其他活动如何响应与过滤器匹配的意图的能力的信息。当一个意图可以由具有不同优先级的多个活动处理时,Android 将只考虑那些具有更高优先级值的活动作为意图的潜在目标。 它控制执行广播接收器以接收广播消息的顺序。具有较高优先级值的优先级值先于具有较低优先级值的优先级值被调用。 (该顺序仅适用于同步消息;它会被异步消息忽略。)

仅当您确实需要强加接收广播的特定顺序或想要强制Android优先选择一个activity而不是其他时才使用此属性。

该值必须是整数,例如“100”。数字越大优先级越高。默认值为 0。

在某些情况下,请求的优先级会被忽略并且值上限为 0。这发生在以下情况:

非特权应用程序请求任何 >0 的优先级 特权应用程序为 ACTION_VIEW、ACTION_SEND、ACTION_SENDTO 或 ACTION_SEND_MULTIPLE

请求优先级 >0