intent標記:
flag_activity_new_task
系統會為新activity安排另外乙個任務。如果已經存在了乙個與新activity有著同樣affinity的任務,則activity會載入那個任務之中。如果沒有,則啟用新任務。
flag_activity_clear_top
flag_activity_clear_top標記,而且目標任務的堆疊中已經存在了乙個能夠響應此intent的activity型別的例項。則這個例項之上的所有activity都將被清理以使它位於堆疊的頂部來對intent做出響應。如果此時指定的activity的載入模式為「standard
」,則它本身也會從堆疊中移除,並載入乙個新的例項來處理到來的intent。這是因為載入模式為「standard
」的activity總會建立乙個新例項來處理新的intent。
flag_activity_reset_task_if_needed
flag_activity_single_top
關鍵的
屬性是:
taskaffinity
launchmode
四種不同的載入模式:"standard","singletop","singletask","singleinstance"
standard:
可以在堆疊的任意位置出現,可以被多次初始化。它們可以歸屬於多個任務,而乙個任務也可以擁有同一activity的多個例項。對預設的"standard
"模式來說,對於每個新intent都會建立乙個新的例項以進行響應,每個例項僅處理乙個intent。
singletop:
可以在堆疊的任意位置出現,可以被多次初始化。它們可以歸屬於多個任務,而乙個任務也可以擁有同一activity的多個例項。如果activity位於目的任務堆疊的最上面,則重用目前現存的activity來處理新的intent。如果它不是在堆疊頂部,則不會發生重用。而是建立乙個新例項來處理新的intent並將其推入堆疊。
方法來將intent物件傳遞至activity。
singletask:(單例)
activity總是位於任務的根部,不會載入到其他任務中。
singleinstance::(單例)
activity總是位於任務的根部,不會載入到其他任務中。在乙個裝置中同一時間只允許存在乙個任務的例項。
會是它所在的任務中唯一的activity。
預設行為:如果使用者離開乙個任務很長一段時間,系統會清理該任務中除了根activity之外的所有activity。
allowtaskreparenting
cleartaskonlaunch
(只保留根activity)
如果乙個任務的根activity中此屬性設定為「true
」,則每當使用者離開這個任務和返回它的時候,堆疊都會被清空至只留下rootactivity。換句話說,這是alwaysretaintaskstate
的另乙個極端。哪怕僅是過了一小會兒,使用者回到任務時,也是見到它的初始狀態。
alwaysretaintaskstate
(保留所有activity)
如果乙個任務的根activity中此屬性設定為「true
」,則上述預設行為不會發生。任務將在很長的一段時間內保留它堆疊內的所有activity。
finishontasklaunch
這個屬性與cleartaskonlaunch
屬性相似,但它僅作用於單個的activity,而不是整個的task。而且它可以使任意activity都被清理,
android 任務棧的管理
1 standard 可以例項化多次,可以存在不同的task中,可以重複堆疊 2 singletop 在乙個task棧中可以有多個例項,但是但棧頂有相同的activity時不會建立新例項,呼叫onnewintent方法啟動該activity 4 singleinstance 獨自在乙個task棧中。...
關於TurboGears中多級URL的處理
在turbogears中,通過繼承controllers.rootcontroller類來處理url請求,比如預設的 class root controllers.rootcontroller 而在commands.py中,通過 turbogears.start server root 來啟動,這裡...
PostgreSQL底層對查詢類語句的處理
postgresql對查詢類語句的優化過程,除了語法分析過程和詞法分析過程以外還需進行 1 將原始語法樹轉換為查詢語法樹 2 以查詢語法樹為基礎對其進行邏輯優化 3 對查詢語句進行物理優化 4 查詢計畫建立等過程。根據本人知識沉澱以及相關資料的查閱,以下提供各位本人對查詢類語句優化過程的理解 1 將...