android學習2:Intent與Bundle

Intent:

1.Intent用來啓動系統組件(Activity,Service,BroadcastReceiver)

2.Intent的屬性

Component屬性:接受一個ComponentName對象,創建一個ComponentName對象需要指定包名和類名,構造函數如下:

ComponentName(String pkg, String cls)

ComponentName(Context pkg, String cls)

ComponentName(Context pkg, Class<?> cls)

即需要包名+類名

Action屬性:代表該Intent所要完成的一個抽象動作,具體由哪個組件完成是不知道的,取決於組件的<intent-filter/>配置,只要組件的<intent-filter/>包含該動作,組件就有可能被啓動(一個Intent最多包含一個Action屬性)

Category屬性:爲Action屬性增加額外的信息(一個Intent可以包含多個Category屬性)

Data屬性:爲Action屬性提供操作的數據,接受一個Uri對象,分爲類型部分和數據部分 tel:12345   一旦同時指定Action、Data屬性,則會啓動特定應用成語並對指定數據執行相應操作

Type屬性:用於指定Data屬性所指定的數據的類型或MIME類型(一般在沒設置Data屬性時使用,有Data屬性則可從Data屬性獲得數據類型)

Extra屬性:用於在多個Action間進行數據交換,是一個Bundle對象(Bundle對象是一個Map對象)


Bundle:

Bundle對象是一個Map對象,存儲鍵值對(key-value)

1.傳遞數據:

Bundle提供了各種putX(String key, X value)和getX(String key) getX(String key, X defaultValue)方法,可以是boolean,int,long,float,double,String與它們對應的數組putXArray(String key, X[] value)和getXArray(String key)

2.傳遞Serializable類型的對象:

直接Implement  Serializable接口,即可實現序列化,較慢,Bundle提供putSerializable(String key, Serializable value)和getSerializable(String key)方法

3.傳遞Parcelable類型對象:

同樣是實現數據的序列化,是android自定義接口,較快,下次詳細研究,Bundle提供putParcelable(String key, Parcelable value),putParcelableArray(String key, Parcelable[] value),putParcelableArrayList(String key, ArrayList<? extends Parcelable> value)和getParcelable(String key),getParcelableArray(String key),getParcelableArrayList(String key)方法

發佈了25 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章