android:Intent匹配action,category和data原则

时间:2021-07-11 16:26:14

1.当你在androidmanifest里面定义了一个或多个action时

android:Intent匹配action,category和data原则

你使用隐式意图其他activity或者service时,规定你隐式里面的action必须匹配XML中定义的action,可以只匹配XML文件一个就行

2.当你在androidmanifest里面定义了一个或多个category时

规定你的代码中可以没有category,但是XML中要加上"android.intent.category.DEFAULT"这句

如果你在代码中定义了一个或者多个category,那么你必须跟XML文件中定义的一样。比如你定义了一个category,那么要在XML文件中匹配到一个,,如果你定义了多个category

那么要在XML文件中全部匹配,一一对应!

3.当你在androidmanifest里面定义了一个或多个data时

规定,要求intent中必须含有data数据,并且data数据能够完全匹配XML文件中的某一个data.这里需要注意的是XML文件中虽然没有指定URL,但是他默认的是"file和content"

所以我们在代码中匹配要写成 intent.setDataAndType(Uri.parse("file://abc"),"data数据");

 最后一点不管是action,category,data在XML中都必须加上android.intent.category.DEFAULT,因为你启动activity的时候,他会默认给你加上,倒是进行匹配发现你XML中没有就会报错,匹配失败

如果同时都设置的action,category,data,那么必须都要完全匹配正确