IntentFilter匹配規則講解

2021-07-13 12:20:53 字數 1273 閱讀 4307

android啟動activity有兩種,顯式呼叫跟隱式呼叫。顯式呼叫大家平時用得比較多,呼叫時需要明確的指定被啟動物件的元件資訊,類名,隱式呼叫則不需要明確指定元件資訊。

下面用**來解釋什麼是顯式啟動。

a:顯式啟動

intent intent=new intent(mainactivity.this, secondactivity.class); 

startactivity(intent);

b:隱式啟動

隱式啟動不同之處在於我們並不需要像intent(mainactivity.this, secondactivity.class)這樣傳引數然後再start另乙個activity.我們需要在intent新增過濾器intentfilter。

這樣,我們需要在啟動另乙個activity的時候只需要如下方法就可以:

intent intent=new intent("com.test.info"); 

startactivity(intent);

由於顯式意圖啟動大家用得比較多,這邊主要講解隱式意圖呼叫。

過濾器intentfilter中的過濾資訊有action,category,data三種,下面是乙個示例。

1.多個intent-filter的匹配規則

2.action的匹配規則

3.category的匹配規則

4 data的匹配規則

則intent必須如下所示:

intent.setdataandtype(uri.parse("file://abc"),"text/plain");
如果< intent-filter>有多組完整data,則跟action一樣,intent中主要匹配其中乙個即可成功。

最上面的intent-filiter用如下的intent則可以啟動成功。

intent.setdataandtype(uri.parse("file://abc"),"image/jpeg");

startactivity(intent);

如有錯誤歡迎指出來,一起學習。

幾句簡短的IntentFilter匹配規則總結

intentfilter的主要標籤 1.2.3.以下幾句簡單的話幫助記憶 1.主選單進入必須使用 2.接收隱式 intent 必須使用 主選單進入必須使用 對於隱式的 intent 必須指定 aciton uri的內容組成 scheme host port path 例如 content 主要標籤 ...

Intent filter匹配規則

乙個activity可以有多個intent filter,乙個intent只要匹配到其中乙個就匹配成功 intent必須匹配乙個或乙個以上action才能匹配intent filter成功,但是這個還沒充分 乙個intentkw 能有1個或者0個action intent可以有0個或者多個categ...

Intent filter匹配規則

action 至少匹配乙個 setaction string 或者new intent string action category 可以不新增匹配,但是如果新增必須匹配 addcategory string categoru 當沒有新增時 系統會設定預設的category android.inte...