只有一個intent同時匹配 action、category嗤练、 data 才算完全匹配俭驮,只有 完全匹配 才能啟動activity
一個 activity 可以 有多個 intent-filter 苛让,一個 intent 只要成功匹配任意一組intent-filter 就可以啟動activity
action的匹配規(guī)則
- action的匹配要求Intent中的action 存在且必須和過濾規(guī)則中的其中action 相同
- action 是區(qū)分大小寫的
category 的匹配規(guī)則
intent中的 category 只要有一個和 匹配規(guī)則中的category 相同就可以匹配
intent 不設(shè)置 category 火惊,也可以和其匹配,因為系統(tǒng)在調(diào)用 startActivity 或者 startActivity ForResult的時候會自動添加 android.intent.category.DEFAULT 這個category
為了我們的activity能夠接受隱式調(diào)用,必須在IntentFilter 中添加 android.intent.category.DEFAULT 這個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等检访,沒有的話整個 url都是無效的
host : Url的主機名,如www.baidu.com 仔掸,沒有的話脆贵,url 無效
port:Url的端口號,如 80 起暮,只有前兩者指定卖氨,才有意義
path>|<pathPrefix>|<pathPattern> 表示路徑信息,分別表示完整的路徑信息负懦、完整的路徑信息(可以含通配符)筒捺、路徑的前綴信息
分情況說明data的匹配規(guī)則
媒體類型是:圖片 沒有指定Url但是有默認值,Url 的默認值是content和file