首页 > 代码库 > Android开发-API指南-<intent-filter>

Android开发-API指南-<intent-filter>

<intent-filter>

英文原文:http://developer.android.com/guide/topics/manifest/intent-filter-element.html
采集(更新)日期:2014-7-1
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmuk.html

语法:
<intent-filter android:icon="drawable resource"               android:label="string resource"               android:priority="integer" >    . . .</intent-filter>

 

包含于:
<activity>
<activity-alias>
<service>
<receiver>
必须包含:
<action>
可包含:
<category>
<data>
说明:
定义可由 Activity 、Service 或 Broadcast Receiver 响应的 Intent 类型。Intent 过滤器声明了其父组件的功能 — Activity 或 Service 可完成的功能以及 Receiver 可处理的广播类型。这将过滤掉对组件没有意义的 Intent,并打开相应的组件来接收指定类型的 Intent 。

过滤器的大部分内容由其<action><category> <data> 子元素进行声明。

关于过滤器更为详尽的讨论,请参阅单独的文档Intent 和 Intent 过滤器,以及 Manifest 介绍中的Intent 过滤器 部分。

属性:
android:icon
供用户查看的代表所属 Activity、Service 或 Broadcast Receiver 的图标,表示这些组件拥有过滤器所描述的功能。

本属性必须设为对 drawable 资源的引用,该资源包含了图片的定义。默认值是所属父组件的 icon 属性。如果父组件未指定图标,默认值是 <application> 元素设置的图标。

关于 Intent 过滤器图标的详细信息,请参阅 Manifest 介绍一文中的图标和文本标签部分。

android:label
供用户查看的所属父组件的文本标签。与父组件定义的文本标签不同,本标签用于向用户标明父组件拥有过滤器所描述的功能。

文本标签应该设为对字符串资源的引用,这样就能像用户界面中的其他字符串一样进行本地化。不过,为了应用程序开发时的便利,也可以直接设为一个字符串。

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

关于 Intent 过滤器文本标签的详细信息,请参阅 Manifest 介绍一文中的图标和文本标签部分。

android:priority
为了处理过滤器指定类型的 Intent,需赋予父组件的优先级。本属性同时适用于 Activity 和 Broadcast Receiver :
  • 它给出了该 Activity 对过滤器相匹配的 Intent 做出响应的优先程度,这是相对其他同样能够响应该类 Intent 的 Activity 而言的。当某个 Intent 可以被多个不同优先级的 Activity 响应时, Android 只会考虑将那些优先级更高的 Activity 作为该 Intent 潜在的传递目标。
  • 它控制各个 Broadcast Receiver 接收广播消息的顺序。优先级较高的 Receiver 将比优先级低的优先被调用。(这只适用于同步消息,异步消息将忽略此顺序)。

仅当确实需要强行指定广播消息接收的顺序时,或者需要强迫 Android 优先选用某 Activity 时,才会使用本属性。

本属性必须是整数值,比如“100”。数字越大则优先级越高。默认值为 0 。本属性值必须介于 -1000 和 1000 之间。

请参阅setPriority()

引入自:
API 级别 1
参阅:
<action>
<category>
<data>

Android开发-API指南-<intent-filter>