Android-Intent-Filter

概述

只有一个intent内的action、category和date都能匹配上一个intent filter时才会启动对应的Activity。当然,这三者都有对应的匹配规则

  1. action
    manifest中,一个intent filter可以有多个action。我们跳转时,intent中只能设置一个action,这个action必须与intent filter中的一个action匹配
  2. category
    manifest中,一个intent filter可以有多个category。我们跳转时,intent可以add多个category,每个category都必须与intent filter中的某个category匹配,才算匹配上。category不能为空,intent中如果不设置category,系统会自动添加默认的categoryandroid.intent.category.DEFAULT。在manifest中设置intent filter时,也要记得,如果想让Activity接受隐式启动,必须加上android.intent.category.DEFAULT这个默认的category.
  1. date
    date的匹配规则和action类似,如果过滤规则中定义了data,那么intent中也必须定义可匹配的data,data主要有两部分
  • mimetype: 媒体类型
  • uri
    • scheme:uri模式,比如http,file,content
    • host:主机
    • port:端口
    • path:路径信息