Android 启动Activity 分为两种:显示启动 和 隐式启动
显示启动:就是通过Intent 指明 那个包名+类名Activity,是开发中最常用的启动方式,在这就不说了,不是本文的目标
隐示启动:现在说一下隐式启动。隐式启动也是通过Intent ,不过必须给 Intent 加上匹配数据,匹配数据必须和目标Activity的其中一个过滤器配上,方可启动目标Activity。关于 匹配数据和 过滤器,请看下面:
可以隐式启动的Activity,必须在清单文件 AndroidManifest.xml里给这个Activity配置一个或多个过滤器,
下文 对 intent-filter 统称为:过滤器
这个过滤器的作用是:外部可以启动我这个Activity,但必须要匹配上我其中一个过滤器,就可以启动 这个Activity。
划重点!!!!------ 匹配上其中一个过滤器即可启动目标Activity
先上个Demo,过滤器是在 AndroidManifest.xml里面给Activity配置的。比如:
很明显,FilterActivity 配置了两个过滤器 ,说了那么久,那到底怎么样才算成功匹配上一个过滤器呢?
先别急,我们先看一下过滤器里面的构造,看上面配置可以看到,一个过滤器有三种参数,分别是:
1> action
2> category
3> data
1和2参数的类型是字符型。3是 Uri + mimeType
还有,这三种参数,每一种参数可以有一个或多个。比如上面的
action参数: 就有 FilterActivity_Action1 和 FilterActivity_Action2 两个参数
category参数:就有 FilterActivity_Category1 和 FilterActivity_Category2 两个参数
data参数:有2个,形式是Uri + mimeType (具体是什么后面会说道)
现在暂且不说每个参数的细分匹配,就问:怎么才算完全匹配上一过滤器呢&#