IntentFilter的匹配规则

作者: tuionf | 来源:发表于2017-01-19 20:35 被阅读60次
    1. 只有一个intent同时匹配 action、category、 data 才算完全匹配,只有 完全匹配 才能启动activity

    2. 一个 activity 可以 有多个 intent-filter ,一个 intent 只要成功匹配任意一组intent-filter 就可以启动activity

    action的匹配规则

    1. action的匹配要求Intent中的action 存在且必须和过滤规则中的其中action 相同
    2. action 是区分大小写的

    category 的匹配规则

    intent中的 category 只要有一个和 匹配规则中的category 相同就可以匹配

    intent 不设置 category ,也可以和其匹配,因为系统在调用 startActivity 或者 startActivity ForResult的时候会自动添加 android.intent.category.DEFAULT 这个category

    为了我们的activity能够接受隐式调用,必须在IntentFilter 中添加 android.intent.category.DEFAULT 这个category

    data 的匹配规则

    如果过滤规则中有data,那么intent中也必须定义可匹配的data

    data由 ** 两部分 **组成:mimeType 和Url

    mimeType 指媒体类型,可以表示图片、文本、视频等媒体格式
    Url 的结构如下 : <scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]
    scheme : Url的模式,如http、file、content等,没有的话整个 url都是无效的

    host : Url的主机名,如www.baidu.com ,没有的话,url 无效

    port:Url的端口号,如 80 ,只有前两者指定,才有意义

    path>|<pathPrefix>|<pathPattern> 表示路径信息,分别表示完整的路径信息、完整的路径信息(可以含通配符)、路径的前缀信息

    分情况说明data的匹配规则

    媒体类型是:图片 没有指定Url但是有默认值,Url 的默认值是content和file

    1111111.png ![22222222222222.png](https://img.haomeiwen.com/i19590/560432cbc59d6bee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    相关文章

      网友评论

        本文标题:IntentFilter的匹配规则

        本文链接:https://www.haomeiwen.com/subject/jgoibttx.html