Android啟動模式及Intent屬性----重新認識Android(5)

AND_YOU_with_ME發表於2017-04-14

Activity的啟動模式、Intent的七大屬性

 

任務:就是儲存app啟動的Activity物件的集合
回退棧:按照Activity開啟順序進行次序排放(先進後出)

一、Activity的四種模式:
1、standard:標準
預設的是該模式
只要跳轉就會建立對應的例項物件onCreate
2、singleTop:頂部唯一
如果當前的Activity物件在頂部就不再onCreate而是自動呼叫onNewIntent方法
如果不再頂部或不存在就onCreate
3、singleTask:任務中例項唯一
如果當前的任務中有對應的例項物件,那麼就不再onCreate而是自動呼叫onNewIntent方法
如果對應的前面有Activity物件那麼就全部退出
如果不存在就onCreate
4、singleInstance:開闢任務,儲存當前Activity例項(不建議使用)
每個回退棧中只會儲存一個例項物件

啟動模式在清單檔案中配置:
<activity android:name=".MainActivity" android:launchMode="standard" />

二、Intent:意圖
作用:
1、用於封裝程式的”呼叫意圖“
2、實現兩個Activity之間的資料交換
3、各種應用程式元件(Service、BroadcastReceiver)之間通訊的重要媒介

頁面跳轉:
1、startActivity:跳轉
2、startActivityForResult:回傳
Intent的七大屬性:
1、Component name 元件名 類型別 元件名錶示包名.類名
設定元件名 setComponent()
setClass()
setClassName()
獲取getComponent()

2、Action 字串型別對元件特徵描述--定義意圖的行為
1.系統提供的action常量
ACTION_VIEW
2.自定義action
setAction() 設定action getAction()獲取action

3、Data 資料 一般與action結合到一起用 表示action動作執行的資料資源
URI(統一資源標示符) Data就是uri型別的資料 uri型別中包括資料資源以及資料型別 MIME
scheme://host:port/path
setData() setDataAndType() 設定data
getData() getType() 獲取方法

4、Type 資料型別 設定資料的MIME型別 格式 大型別/小型別----字串
setType()設定Data的型別 getType()獲取Data的型別

5、Category 分類 字串對activity進行分類
addCategory()設定 removeCategory()移除
getCategories()獲取分類字串列表

6、Extras 額外資訊
主要在intent啟用元件時進行資料的傳遞

7、flags 標記 int型別
用來標記回退棧中的actvity 以及提供的常量可以設定activity的啟動模式
setFlags() 設定標記
getFlags() 獲取標記
常用的標記:
FLAG_ACTIVITY_CLEAR_TOP:(效果同Activity LaunchMode的singleTask)
FLAG_ACTIVITY_SINGLE_TOP:(效果同Activity LaunchMode的singleTop)
FLAG_ACTIVITY_NEW_TASK




相關文章