<intent-filter>

语法:
<intent-filter android:icon="drawable resource"
                   android:label="string resource"
                   android:priority="integer" >
        . . .
    </intent-filter>
包含于:
<activity>
<activity-alias>
<service>
<receiver>
必须包含:
<action>
可包含:
<category>
<data>
说明:
指定 Activity、服务或广播接收器可以响应的 Intent 类型。Intent 过滤器声明其父组件的功能 - Activity 或服务可执行哪些操作,以及接收器可处理哪些类型的广播。它让组件可以接收所通告类型的 Intent,同时过滤掉对组件没有意义的 Intent。

过滤器的大部分内容由它的 <action><category><data> 子元素进行描述。

如需详细了解过滤器,请参阅一篇单独的文档 - Intent 和 Intent 过滤器,以及简介中的 Intent 过滤器部分。

属性:
android:icon
一个表示父 Activity、服务或广播接收器的图标,在将该组件以具备过滤器所描述功能的形式呈现给用户时显示。

必须将此属性设为对包含图片定义的可绘制资源的引用。默认值为父组件的 icon 属性设置的图标。如果父组件未指定图标,则默认值为 <application> 元素设置的图标。

如需详细了解 Intent 过滤器图标,请参阅简介中的图标和标签

android:label
父组件的用户可读标签。将相应组件以具备过滤器所描述功能的形式呈现给用户时,将使用此标签(而不是父组件设置的标签)。

应将标签设为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。不过,为了方便您开发应用,也可以将其设为原始字符串。

默认值为父组件设置的标签。如果父组件未指定标签,则默认值为 <application> 元素的 label 属性设置的标签。

如需详细了解 Intent 过滤器标签,请参阅简介中的图标和标签

android:priority
就处理过滤器所描述类型的 intent 而言,应该为父组件指定的优先级。此属性对 Activity 和广播接收器都有意义:
  • 它说明了某个 Activity 对与过滤器匹配的 Intent 的响应能力,这是相对于也可以响应该 Intent 的其他 Activity 的响应能力。当 Intent 可由优先级不同的多个 Activity 处理时,Android 只会将优先级值较高的 Activity 视为 Intent 的潜在目标。
  • 它控制按什么顺序执行广播接收器以接收广播消息。优先级值越高,调用顺序越靠前。(该顺序仅适用于同步消息;对于异步消息,系统会忽略该顺序。)

只有在您确实需要对接收广播施加特定顺序或想要强制 Android 优先选用某个 Activity 时,才能使用此属性。

值必须是一个整数,如“100”。数值越高,优先级也就越高。默认值为 0。

在某些情况下,系统会忽略请求的优先级,并将值限定为 0。此类情况发生在:

另请参阅 setPriority()

android:order
当多个过滤器匹配时应按什么顺序处理过滤器。

orderpriority 的不同之处在于,priority 在多个应用间应用,而 可消除单个应用中多个匹配的过滤器的歧义。

当多个过滤器可以匹配时,请改用定向 Intent。

值必须是一个整数,如“100”。数值越高,匹配顺序越靠前。默认值为 0

此属性是在 API 级别 28 中引入的。

引入于:
API 级别 1
另请参阅:
<action>
<category>
<data>