Android Manifets文件中意图过滤器中的负优先级

问题描述 投票:0回答:1

根据android文档,我们可以在清单文件中为intent-filters定义优先级。优先级可以是整数,默认值为0。另外,如果我们在检查优先级的同时检查setPriority(int Priority)API,则说Positive values will be before the default, lower values will be after it.

这里的负优先级值意味着什么,它有什么用?我已经看到许多库在其清单文件中使用-1作为意图过滤器的优先级。

android android-service android-manifest android-intentservice
1个回答
0
投票

负值表示这些意图过滤器的优先级较低。android:priority的值越小,则传递意图时(例如,broadcast)给出的优先级就越小。

Ex:考虑到有广播,例如:安装Receiver Broadcast。您的应用正在收听广播。您在应用中使用的SDK也正在收听相同的广播(优先级设置为-1)。广播广播后,您的应用程序接收者将首先接收它,而SDK将随后接收它。这是因为默认情况下,您的接收器的优先级设置为0。

这主要是由SDK来完成的,因为那些SDK希望优先考虑让应用处理其自定义逻辑。

此属性对活动和广播接收者均具有含义:它提供有关活动如何响应与过滤器匹配的意图的信息,相对于其他活动也可以响应该意图。当意图可以由优先级不同的多个活动处理时,Android只会将优先级较高的那些活动视为意图的潜在目标。它控制执行广播接收器以接收广播消息的顺序。具有较高优先级值的那些优先于具有较低优先级的那些。 (该顺序仅适用于同步消息;异步消息将忽略该顺序。)仅当您确实需要强制规定接收广播的特定顺序,或者要强制Android优先选择一项活动而不使用其他活动时,才使用此属性。该值必须是整数,例如“ 100”。数字越高优先级越高。默认值为0。

© www.soinside.com 2019 - 2024. All rights reserved.