intent
官方:相關部落格:對action講得清楚
對常用的action、data、category等進行了歸納及翻譯
類資訊:public class intent extends object implements parcelable cloneable
簡介:intent的中文意思是「意圖,目的」的意思,可以理解為不同元件之間通訊的「媒介」或者「信使」。
目標元件一般通過宣告元素來宣告自己能處理的動作。
intent在由以下幾個部分組成:動作(action),資料(data),分類(category),型別(type),元件(component),和擴充套件資訊(extra)。
intent在尋找目標元件的時候有兩種方法:第一,通過元件名稱直接指定(顯式);第二,通過intent filter過濾指定(隱式)。
intent物件
乙個intent物件包含了很多資料的資訊,比如要執行的動作,類別,資料,附加資訊等等。
componentname(元件名稱)
這個元件名稱字段其實就是乙個componentname類,它包含了乙個目標元件的全限定名,比如com.flysnow.intent.activity1,這就是乙個全限定名的activity。元件名字可以通過setcomponent()、setclass()或者setclassname()設定,如果設定了intent目標元件的名字,那麼這個intent就會被傳遞給特定的元件,也就是我們說的顯式intent.如果不設定,則是隱式的intent,android系統將根據intent filter中的資訊進行匹配.
action(動作)
乙個intent的action在很大程度上說明這個intent要做什麼,是檢視(view)、刪除(delete)、編輯(edit)等等。action乙個字串命名的動作,android中預定義了很多action,可以參考intent類檢視。
我們也可以自定義action,比如com.flysnow.intent.action_add,定義action的時候最好能表明意思,要做什麼,這樣我們的intent中的資料才好填充。intent物件的getaction()可以獲取動作,使用setaction()可以設定動作。
data(資料)
data,其實就是乙個uri,用於執行乙個action時所用到的資料的uri和mime。不同的action有不同的資料規格,比如action_edit動作,資料就可以能包含乙個用於編輯文件的uri,如果是乙個action_call動作,那麼資料就是乙個包含了tel:6546541的資料字段,所以上面提到的自定義action時要規範命名。資料的uri和型別對於intent的匹配是很重要的,android往往根據資料的uri和mime找到能處理該intent的最佳目標元件。
category(類別)
category指定了用於處理intent的元件的型別資訊,乙個intent可以新增多個category,使用addcategory()方法即可,使用removecategory()刪除乙個已經新增的類別。android的intent類裡定義了很多常用的類別,可以參考使用。
extras(附加資訊)
有些用於處理intent的目標元件需要一些額外的資訊,那麼就可以通過intent的put..()方法把額外的資訊塞入到intent物件中,用於目標元件的使用,乙個附件資訊就是乙個key-value的鍵值對..intent有一系列的put和get方法用於處理附加資訊的塞入和取出。
flag(標識)
android有很多標識,用於標記如何啟動乙個活動,是new_task還是其他等等,以及啟動後怎麼對待這個活動。可以參考intent類中的flag常量字段。如通過乙個廣播啟動乙個新activity就必須宣告i.setflags(intent.flag_activity_new_task)。
學習筆記 003
陣列名 下標表示式 陣列名 整數 如 a 0 a i a 2 i 1 a a i a 2 i 1 指標可以視為乙個普通變數,通常所說的定義乙個指標實際上是宣告乙個指標變數 宣告乙個指標變數時,需要向編譯器提供 指標的型別,原則上指標型別應與其指向的資料型別一致 指標變數名 宣告乙個指向int型資料的...
linux學習筆記003
cat tac more less head tail cat 連線並顯示 n 顯示行號 e 顯示行結束符 是回車符 a 顯示所有的控制符 tac反過來檢視 ctrl c 終止當前命令 分屏顯示 more less more 向後翻 less head 檢視前n行 tail 檢視後n行 n tail...
Reactjs學習記錄(003)
var foo delete rowbutton onclick delete rowbutton 來為事件處理函式傳遞引數 ebind popper extends react.component preventpop name,e render href onclick clicka div 由...