1.1、standard:標準模式,這也是系統的預設模式
1.2、singletop:棧頂復用模式
1.3、singletask:棧內復用模式
1.4、singleinstance:單例項模式
1.5、activity 的任務棧
1.6、給 activity 指定啟動模式
android:name=
".secondactivity"
android:configchanges=
"screenlayout"
android:label=
android:launchmode=
"singletask"
/>
intent intent =
newintent()
; intent.
setclass
(mainactivity
.this
,secondactivity
.class);
intent.
addflags
(intent
.flag_activity_new_task)
;startactivity
(intent)
;
優先順序上,第二種高於第一種,當兩種同時存在,以第二種為準。
限定範圍有所不同,比如,第一種方式無法直接為 activity 設定 flag_activity_clear_top 標識,而第二種方式無法為 activity 指定 singleinstance 模式。
1.7、小栗子
intent.flag_activity_new_task:為 activity 指定 singletask 啟動模式。
intent.flag_activity_single_top:為 activity 指定 singletop 啟動模式。
intent.flag_activity_clear_top:當啟動具有此標記位的 activity時,在同一任務棧中的所有位於它之上的 activity 都要出棧。
intent.flag_activity_exclude_from_recents:具有此標記的 activity 不會出現在歷史 activity 的列表中,相當於 xml 中 activity 的 android:excludefromrecents=「true」 屬性。
3.1、顯式呼叫
intent intent =
newintent
(mainactivity
.this
,secondactivity
.class);
startactivity
(intent)
;
3.2、隱式呼叫3.2.1、intent-filter3.2.2、action 匹配規則3.2.3、category 匹配規則
3.2.4、data 匹配規則(關於 data 還存在疑問,僅供參考)
:/
/:/[
|<
|pathprefix>
|]// 比如
scheme:uri 中的模式,比如 http、file、content 等,如果 uri 中沒有指定 scheme,那麼整個 uri 的其他引數無效,這也意味著 uri 是無效的。
host:uri 的主機名,比如 www.baidu.com,如果 host 未指定,那麼整個 uri 的其他引數無效,這也意味著 uri 是無效的。
port:uri 中的埠號,比如 80,僅當 uri 中指定了 scheme 和 host 引數的時候 port 引數才是有意義的。
path、pathprefix 和 pathpattern:這三個引數表述路徑資訊。
path表示完整的路徑資訊。
pathprefix表示路徑的字首資訊。
pathpattern也表示完整的路徑資訊,但是它裡面可以包含萬用字元 「*」,「*」 表示 0 個或多個任意字元,需要注意的是,由於正規表示式的規範,如果想要表示真實的字串,那麼 「*」 要寫成 「\\*」,"\"要寫成 「\\\\」。
3.2.5、系統內部 activity
這裡沒有做版本適配,如動態許可權申請。
撥打**,
intent.
setaction
("android.intent.action.call");
intent.
setdata
(uri
.parse
("tel://13600000000"))
;
開啟瀏覽器
intent.
setaction
("android.intent.action.view");
intent.
setdata
(uri
.parse
(""))
;
intent.
setaction
("android.intent.action.view");
intent.
setdataandtype
(uri
.parse
("file:///mnt/sdcard/adele - rolling in the deep.***"),
"audio/*"
);
intent.
setaction
("android.intent.action.view");
intent.
setdataandtype
(uri
.parse
("file:///mnt/sdcard/1.mp4"),
"video/*"
);
顯示
activity的任務棧
當activity被建立出來的時候,系統就分給他乙個任務棧,task stack.用於存放activity.任務棧是用來描述activity當前的狀態.內部實現是乙個鍊錶.後進先出.複雜的任務棧.假設任務棧有browseractiviity.webkit.避免出現太多的activity.節約記憶體,...
Activity任務和返回棧
1,介紹 任務是指在執行特定作業時與使用者互動的一系列 activity。這些 activity 按照各自的開啟順序排列在堆疊 即返回棧 中 任務棧的作用是用來維護activity,開啟乙個activity 進棧,關閉乙個activity叫出棧 一般情況乙個應用程式對應乙個任務棧我們操作的activ...
解釋activity棧 activity的載入模式
activity棧 activity棧是乙個先進先出 包含所有正在執行的activity的佇列。乙個activity的狀態,對於開發者來說是無法控制的,是由系統決定的。那麼activity是按照什麼邏輯來運作的呢,這就要了解activity棧了,每個activity的狀態都是由它在activity棧...