顯式Intent和隱式Intent

2021-09-01 14:10:15 字數 1262 閱讀 2332

[size=medium][size=medium]2011-09-12 09:35 顯式intent和隱式intent區別

android當中顯式intent和隱式intent的區別

定義:intent定義:intent是一種在不同元件之間傳遞的請求訊息,是應用程式發出的請求和意圖。作為乙個完整的訊息傳遞機制,intent不僅需要傳送端,還需要接收端。

顯式intent定義:對於明確指出了目標元件名稱的intent,我們稱之為顯式intent。

隱式intent定義:對於沒有明確指出目標元件名稱的intent,則稱之為隱式intent。

[size=medium]詳細解釋:

顯式intent直接用元件的名稱定義目標元件,這種方式很直接。但是由於開發人員往往並不清楚別的應用程式的元件名稱,因此,顯式intent更多用於在應用程式內部傳遞訊息。比如在某應用程式內,乙個activity啟動乙個service。

隱式intent恰恰相反,它不會用元件名稱定義需要啟用的目標元件,它更廣泛地用於在不同應用程式之間傳遞訊息。

在顯式intent訊息中,決定目標元件的唯一要素就是元件名稱,因此,如果你的intent中已經明確定義了目標元件的名稱,那麼你就完全不用再定義其他intent內容。

而對於隱式intent則不同,由於沒有明確的目標元件名稱,所以必須由android系統幫助應用程式尋找與intent請求意圖最匹配的元件。

android系統尋找與intent請求意圖最匹配的元件具體的選擇方法 是:android將intent的請求內容和乙個叫做intentfilter的過濾器比較,intentfilter中包含系統中所有可能的待選元件。

如果intentfilter中某一元件匹配隱式intent請求的內容,那麼android就選擇該元件作為該隱式intent的目標元件。

android如何知道應用程式能夠處理某種型別的intent請求呢?這需要應用程式在android-manifest.xml中宣告自己所含元件的過濾器(即可以匹配哪些intent請求)。

乙個沒有宣告intent-filter的元件只能響應指明自己名字的顯式intent請求,而無法響應隱式intent請求。

而乙個宣告了intentfilter的元件既可以響應顯式intent請求,也可以響應隱式intent請求。在通過和 intentfilter比較來解析隱式intent請求時,android將以下三個因素作為選擇的參考標準。

action

data

category

而extra和flag在解析收到intent時是並不起作用的。[/size][/size]

顯式intent和隱式intent區別

android當中顯式intent和隱式intent的區別 定義 intent定義 intent是一種在不同元件之間傳遞的請求訊息,是應用程式發出的請求和意圖。作為乙個完整的訊息傳遞機制,intent不僅需要傳送端,還需要接收端。顯式intent定義 對於明確指出了目標元件名稱的intent,我們稱...

顯式Intent與隱式Intent的區別

在activity的跳轉中 activity的跳轉需要建立intent物件,通過設定intent物件的引數指定要跳轉activity 通過設定activity的包名和類名實現跳轉,稱為顯式意圖 通過指定動作實現跳轉,稱為隱式意圖 顯式意圖 跳轉至同一專案下的另乙個activity,直接指定該acti...

mysql顯式和隱式效率 顯式與隱式SQL連線

顯式和隱式內部聯接是否存在效率差異?例如 select from table a inner join table b on a.id b.id 與select a.b.from table a,table b where a.id b.id 在mysql 5.1.51上,兩個查詢的執行計畫相同 m...