我是靠谱客的博主 传统大山,最近开发中收集的这篇文章主要介绍android开发艺术探索 第一章 intentFilter的匹配规则 隐式启动匹配规则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

intentFilter中包括action,catagory,data。

一个activity可以有多个intentFilter,一个intent匹配任意一组intentFilter即可匹配成功。

 

action的匹配规则:

1.intentFilter中至少有一个action,可以有多个action,不然intent无法匹配。

2.intent中有且只有一个action。

3.intent中的action和intentFliter中的任意一个action匹配成功即可。

 

catagory的匹配规则:

1.除了主activity其他的activity需要隐式启动的intentFilter必须有

<category android:name="android.intent.category.DEFAULT" />,这是默认的catagory

2.intent可以有0个或者多个catagory。

3.intent中有0个catagory肯定可以匹配成功,因为默认不指定catagory会在startActivity或者startActivityForResult中添加上默认的catagory。

4.intent如果有多个catagory必须都匹配成功才可以算catagory匹配成功。

 

data匹配规则:

1.data默认是两部分组成:mimeType和URI。mimeType是媒体类型。URI是多种数据组合而成,分别是Scheme(URI模式),Host(URI主机),Port(URI端口号),Path(URI地址)。

2.intentFilter中可以有0个或者多个data。

3.如果intentFilter中有data,则intent如果要与之匹配成功则必须要有data与之匹配成功。

4.如果intentFilter中没有data,则intent也要没有data,否则匹配不成功。

5.intent中的data与intentFliter中的任意一个data匹配成功即可。

6.intentFilter中没有指定URI,会有默认值content或者file,intent在此情况下需要指定URI为file或者content才能匹配成功,注意intent的URI为file时这里在7.0及以上的安卓版本还会有问题,后面再说。

7.intent中的setData方法和setType方法会消除对方,这个从源码中可以看出来,所以intent如果既要设置类型,又要设置URI的话需要调用setDataAndType方法。

最后

以上就是传统大山为你收集整理的android开发艺术探索 第一章 intentFilter的匹配规则 隐式启动匹配规则的全部内容,希望文章能够帮你解决android开发艺术探索 第一章 intentFilter的匹配规则 隐式启动匹配规则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部