Android开发中 AndroidManifest.xml配置之隐式Intent相关标签配置详解

本文主要来分享隐式Intent相关的标签配置。如有错误,欢迎指正。
更多Android技术分享可以关注我的Android技术圈子,也可以join in 扣扣群:690347536,交流Android开发技能。

<intent-filter android:icon="drawable resource"
               android:label="string resource"
               android:priority="integer" >
    . . .
</intent-filter>
  1. android:icon
    图标标识。

  2. android:label
    标签标识。

  3. android:priority
    执行优先级,值越大,优先级越高,取值范围-1000-1000。

  4. android:order
    执行过滤时的顺序。

<action android:name="string" />
  1. android:name
    action名称。
<category android:name="string" />
  1. android:name
    category名称。
<data android:scheme="string"
      android:host="string"
      android:port="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:mimeType="string" />
  1. android:scheme
    URI的scheme
  2. android:host
    URI的host
  3. android:port
    URI的端口
  4. android:path
  5. android:pathPrefix
  6. android:pathPattern
    4、5、6 表示URI中的路径规则。
  7. android:mimeType
    MINE的多媒体类型。

以上标签都是Intent的在隐式匹配中可能会用到的规则,此处做一些匹配说明:
总的匹配原则是:

  1. 匹配过滤列表时需要同时匹配过滤列表中的action,category,data;
  2. 一个过滤列表中可以有多个action,category,data并各自构成不同类别,一个Intent必须同时匹配action类别,category类别和data类别才算完全匹配。
  3. Activity,Service,BroadcastReceiver中都可包含多组intent-filter,一个Intent只要匹配任何一组intent-filter就算匹配成功。

action的匹配规则:

  1. action的name属性在做匹配时是严格区分大小写的;
  2. Intent中必须存在action,可以没有category;
  3. 匹配规则中可以同时有多个action,但是Intent中的action只需与其中之一相同即可匹配成功。

category的匹配规则:

  1. 虽然可以在Intent中不添加category,但是在启动Activity,Service组件或者发送广播时,系统会自动添加一个”android.intent.category.DEFAULT”默认的category。
  2. Intent中可以同时设置多个category,一旦设置多个category,那么每个category都必须能够和过滤条件中的某个category匹配成功。

data的说明及匹配规则:

  1. 在JS调用原生组件时,data非常有用;
  2. 如果Intent-filter中定义了data,那么Intent中必须要定义可匹配的data;
  3. data有两部分组成:mineType和URI,
  4. mineType是媒体类型,可以表示图片、文本、视频等不同媒体格式;
  5. URI的结构:<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPatten>],
    path、pathPattern可以表示完整的路径信息,其中pathPattern可以包含通配符*,表示0个或者多个任意字符;pathPrefix只表示路径的前缀信息。

更多Android技术分享可以关注我的Android技术圈子,也可以join in 扣扣群:690347536,交流Android开发技能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容