Android学习之路(五)之 Intent-Filter简介及URI

Intent-Filter简介及URI

Intent-Filter又称意图过滤器,在Intent-Filter中存在三个属性,分别是action、category、data,在activity类中进行intent操作时,他会根据action、category、data进行匹配。
匹配依次会进行如下几步:

动作测试:

即先对action进行匹配,如果找到与之某一项匹配时,进行第二步匹配。

类别测试:

即第二步匹配,在类别测试中,对于进行隐式意图时,必不可少的一个属性就是

< category android:name="android.Intent.Category.DEFAULT" />,同样与上一步一样找到某一项匹配就进行下一步匹配操作。

数据测试:

即第三步匹配,在数据测试中,会有很多属性,这里主要讲以下几个:

android:scheme 协议

android:host       主机/IP

android:port        端口

android:path       路径

我们在activity类中,通过intent来调用setData方法时,传输的参数是一个Uri,那么对于一个Uri,它必有一个规则,比如说,http://blog.csdn.net/huai814586181 这里http就是他的协议,在Intent-Filter中的data中设置他的android:scheme="http",blog.csdn.net就是他的主机,即android:host="blog.csdn.net",huai814586181就是他的路径,即android:path="/huai814586181",那么还有一个端口呢?就在主机后面加上一个冒号再加端口号就可以了,同样在Intent-Filter中设置如下:android:port="端口号"。

在匹配的时候,我们还可以加一个android:mimeType,参数的话设置为

超文本标记语言文本 .html text/html
xml文档 .xml text/xml
XHTML文档 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文档 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG图像 .png image/png
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
任意的二进制数据 application/octet-stream
后面那一串。以上参数来自于mime百度百科。自个儿可以百度一下就知道了。
这里主要讲一个注意点,就是在同时使用setData和setType时遇到的问题,当我们单单是这样用,是不可以的,看一下下面的截图就明白了:

在使用setType时,会自动清除setData设置的,在使用setData的时候会自动清除setType设置的。
那如果想两个都用该怎么办呢?
这里提供了这样一个方法:
intent.setDataAndType(data, type),把这两个合二为一的一个方法。

在上面提到了URI,那么来简单说一下什么是URI。
URI,全称Uniform Resource Identifier,中文叫做统一资源标识符。用于标识某一互联网资源名称的字符串。
在URI中又包含了两个子集:URL和URN
URL:Uniform Resource Locator,统一资源定位符
目前URI的最普遍形式就是无处不在的URL或统一资源定位器。
URN:Uniform Resource Name,统一资源名称。
URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。
现在最常用的就是URL了。这个简单了解一下。。。

THE END~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值