基於顯式intent的通訊

2021-08-20 23:14:49 字數 1407 閱讀 3368

乙個activity啟動另乙個activity最簡單的方法就是使用startactivity(intent)方法,activity呼叫這個方法時,嗲用請求實際傳送給了作業系統的activitymanager。activitymanager負責建立activity例項並呼叫其oncreate(bundle)方法。

activitymanager該啟動哪個activity就在於傳入startactivity(intent)方法的intent引數。

intent物件是component用來與作業系統通訊的一種媒介工具,activity就是一種component。intent可以使用一下構造方法來告訴activitymanager該啟動哪個activity:

public intent(context packagecontext,class> cls)
傳入該方法的class型別引數告訴activitymanager應該啟動哪個activity;context引數告訴activitymanager在**可以找到它。在啟動activity之前,activitymanager會確認指定的class是否在manifest配置檔案中宣告。

intent分為顯示intent和隱式intent。如果通過指定context物件與class物件,然後呼叫intent的構造方法來建立intent,則建立的是顯示intent。在同一應用中,我們使用顯示intent來啟動activity。乙個應用的activity如需啟動另乙個應用的activity,可通過建立隱式intent來處理。

使用intent extra

extra資訊附加在傳入stratactivity(intent)方法的intent上傳送出去,可以是任意資料,接收方activity接收到作業系統**的intent後,訪問並獲取其中的extra資訊。要將extra資料資訊新增個intent,需要呼叫如下方法:

public intent putextra(string name,boolean value)
該方法形式多變,但它總有兩個引數,乙個引數是固定為string型別的鍵,另乙個引數是鍵值,可以是多種資料型別。該方法返回intent自身,因此,需要時可進行鏈式呼叫。activity可能啟動自不同的地方,所以,應該在獲取和使用extra資訊的activity那裡,為它定義鍵,用包名修飾extra資料資訊,這樣,可以避免來自不同應用的extra間發生命名衝突。

要從extra獲取資料,會用到如下方法:

public boolean getbooleanextra(string name,boolean defaultvalue)
第乙個引數是extra的名字,第二個引數是指定預設值,它在無法獲得有效鍵值時使用。

顯式Intent和隱式Intent

size medium size medium 2011 09 12 09 35 顯式intent和隱式intent區別 android當中顯式intent和隱式intent的區別 定義 intent定義 intent是一種在不同元件之間傳遞的請求訊息,是應用程式發出的請求和意圖。作為乙個完整的訊息...

顯式Intent與隱式Intent的區別

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

顯式intent和隱式intent區別

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