博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Intent 匹配规则
阅读量:4921 次
发布时间:2019-06-11

本文共 1394 字,大约阅读时间需要 4 分钟。

本文翻译自Android API Guide,并经过整理.

Intent 匹配规则:做三项測试:action,data,category
1.action測试:
一个过滤器中能够定义零个或多个action,假设Intent不包括action,那么它通过此项測试.假设Intent包括的action,那么须要和过滤器中的action匹配(同样)才干通过測试.假设过滤器不定义action,不论什么Intent都不能通过測试(包括不定义action的Intent).
2.category測试:
一个过滤器能够定义零个或多个category,假设Intent未定义category,那么它通过測试,假设Intent中定义了category那么当中的每个category都要在过滤器中匹配到才干通过測试.须要注意的是通过startActivity()或 startActivityForResult()传入的implicit Intent在測试时Android自己主动包括了CATEGORY_DEFAULT,所以假设应用想要接收implicit Intent就必须包括 "android.intent.category.DEFAULT".
3.data測试:
一个过滤器能够定义零个或多个data,每个data能够定义一个mimeType和一个URI结构体.URI结构体的组成:
<scheme>://<host>:<port>/<path>
这四个域都是可选的,可是假设scheme未定义,host会被忽略,假设host未定义,port会被忽略,假设scheme和host都未定义那么path会被忽略.path能够包括通配符"*".
当Intent中的URI和过滤中的URI对照时,仅对照过滤中定义的部分.
当Intent中的URI和MIMETYPE和过滤器中的对照时:
a.当Intent中没有包括不论什么URI和MIMETYPE时,仅仅有过滤器未定义不论什么URI和MIMETYPE时才干通过測试.
b.当Intent仅仅包括URI没有包括MIMETYPE时,仅仅有Intent中的URI匹配过滤器的URI且过滤器未定义MIMETYPE时通过測试.
c.当Intent仅仅包括MIMETYPE时,仅仅有Intent中的MIMETYPE匹配过滤器的MIMETYPE且过滤器未定义URI时通过測试.
d.当Intent同一时候包括URI和MIMETYPE时,这时进行两部分測试,一是測试Intent中的MIMETYPE和过滤器中的MIMETYPE是否匹配,二是測试URI是否匹配,假设过滤器未定义URI,那么当Intent中的URI包括"file:"或"content:"时通过測试.特别注意,假设过滤器有定义URI,即使Intent中的URI包括"file:"或"content:"也不能通过測试,必须匹配才行.
 
Intent内容设置:
设置action使用setAction
设置category使用addCategory,能够添加多个
单独设置URI使用setData
单独设置MIMETYPE使用setType
同一时候设置URI和MIMETYPE使用setDataAndType
 
 

转载于:https://www.cnblogs.com/llguanli/p/8385342.html

你可能感兴趣的文章
Java学习从入门到精通
查看>>
查找目录下的所有文件中是否含有某个字符串 linux
查看>>
2018年各大互联网前端面试题四(美团)
查看>>
一起学Python:字符串介绍
查看>>
学习笔记:树状数组
查看>>
洛谷P1772 [ZJOI2006]物流运输 题解
查看>>
CF519E A and B and Lecture Rooms
查看>>
python-redis之数据类型二
查看>>
Java类加载机制
查看>>
数据库的最简单实现
查看>>
循环单链表实现
查看>>
Android设计模式实战---责任链模式
查看>>
剑指Offer_31_整数中1出现的次数(从1到n整数中1出现的次数)
查看>>
10月29日 迅雷会员vip账号分享 91freevip 晚间21:00更新
查看>>
【一题多解】Python 字符串逆序
查看>>
open ball、closed ball 与 open set、closed set(interior point,limit point)、dense set
查看>>
字典(dictionary)与映射(map)
查看>>
Python 编程规范 —— TODO 注释(结合 PyCharm)
查看>>
十万个为什么 —— 名词解释(体育)
查看>>
table的设置(w3c)
查看>>