只有一個(gè)intent同時(shí)匹配 action、category、 data 才算完全匹配,只有 完全匹配 才能啟動(dòng)activity
一個(gè) activity 可以 有多個(gè) intent-filter ,一個(gè) intent 只要成功匹配任意一組intent-filter 就可以啟動(dòng)activity
action的匹配規(guī)則
- action的匹配要求Intent中的action 存在且必須和過濾規(guī)則中的其中action 相同
- action 是區(qū)分大小寫的
category 的匹配規(guī)則
intent中的 category 只要有一個(gè)和 匹配規(guī)則中的category 相同就可以匹配
intent 不設(shè)置 category ,也可以和其匹配,因?yàn)橄到y(tǒng)在調(diào)用 startActivity 或者 startActivity ForResult的時(shí)候會(huì)自動(dòng)添加 android.intent.category.DEFAULT 這個(gè)category
為了我們的activity能夠接受隱式調(diào)用,必須在IntentFilter 中添加 android.intent.category.DEFAULT 這個(gè)category
data 的匹配規(guī)則
如果過濾規(guī)則中有data,那么intent中也必須定義可匹配的data
data由 ** 兩部分 **組成:mimeType 和Url
mimeType 指媒體類型,可以表示圖片、文本、視頻等媒體格式
Url 的結(jié)構(gòu)如下 : <scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]
scheme : Url的模式,如http、file、content等,沒有的話整個(gè) url都是無效的
host : Url的主機(jī)名,如www.baidu.com ,沒有的話,url 無效
port:Url的端口號(hào),如 80 ,只有前兩者指定,才有意義
path>|<pathPrefix>|<pathPattern> 表示路徑信息,分別表示完整的路徑信息、完整的路徑信息(可以含通配符)、路徑的前綴信息
分情況說明data的匹配規(guī)則
媒體類型是:圖片 沒有指定Url但是有默認(rèn)值,Url 的默認(rèn)值是content和file

