以下內(nèi)容整理自互聯(lián)網(wǎng),僅用于個人學習
只有當action類別、category類別和data類別同時匹配印屁,才能成功啟動Activity醇份。另外稼锅,一個Activity可用有多個intent-filter,一個Intent只要能匹配任何一組intent-filter即可成功啟動對應的Activity僚纷。
匹配過程:
- 加載所有的Intent Filter列表
- 去掉action匹配失敗的Intent Filter
- 去掉url匹配失敗的Intent Filter
- 去掉Category匹配失敗的Intent Filter
- 判斷剩下的Intent Filter數(shù)目是否為0矩距。如果為0查找失敗返回異常;如果大于0怖竭,就按優(yōu)先級排序锥债,返回最高優(yōu)先級的Intent Filter
action匹配規(guī)則
至少要有一個action與之相同。
category匹配規(guī)則
必須為其子集侵状。
注意赞弥,系統(tǒng)在調(diào)用startActivity或startActivityForResult的時候,會默認給Intent加上“android.intent.category.DEFAULT”這個category趣兄,所以绽左,為了我們的Activity能接收隱式調(diào)用,必須在intent-filter中加“android.intent.category.DEFAULT”這個category艇潭。
data匹配規(guī)則
至少有一個data與之相同拼窥。