IntentFilter的匹配規(guī)則

  1. 只有一個(gè)intent同時(shí)匹配 action、category、 data 才算完全匹配,只有 完全匹配 才能啟動(dòng)activity

  2. 一個(gè) activity 可以 有多個(gè) intent-filter ,一個(gè) intent 只要成功匹配任意一組intent-filter 就可以啟動(dòng)activity

action的匹配規(guī)則

  1. action的匹配要求Intent中的action 存在且必須和過濾規(guī)則中的其中action 相同
  2. 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

1111111.png
![22222222222222.png](http://upload-images.jianshu.io/upload_images/19590-560432cbc59d6bee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容