生活本來就不容易啊,而我們的不努力只會讓生活變得更加無賴。今天看了*《android群英傳》*的有關activity呼叫棧的相關知識,所以得來寫點東西記錄今天的收穫。
androidmainifest啟動模式
standard activity預設的啟動模式,每次建立activity都會new出乙個新的例項。如下圖:
singletop
singletask
singleinstance
書上說這種模式,會新建乙個任務棧。其原理與瀏覽器的工作原理相類似。多個程式訪問瀏覽器時。如果瀏覽器已開則直接訪問,沒有則開啟瀏覽器後訪問。singletop與singleinstance還有一點需注意:如果activitya中呼叫startactivityforresult()啟動另外乙個時,系統會自動返回activity.result_caceled而不會再等待返回。
intent flag啟動模式
intent.flag_activity_single_top(singletop效果相同)
intent.flag_activity_clear_top(singletask效果相同)
intent.flag_activity_no_history(該模式下,activitya啟動activityb後,activitya小時)
清空任務棧
解釋activity棧 activity的載入模式
activity棧 activity棧是乙個先進先出 包含所有正在執行的activity的佇列。乙個activity的狀態,對於開發者來說是無法控制的,是由系統決定的。那麼activity是按照什麼邏輯來運作的呢,這就要了解activity棧了,每個activity的狀態都是由它在activity棧...
棧的分析(一) 函式呼叫棧
當發生函式呼叫的時候,棧空間中存放的資料是這樣的 1 呼叫者函式把被調函式所需要的引數按照與被調函式的形參順序相反的順序壓入棧中,即 從右向左依次把被調函式所需要的引數壓入棧 2 呼叫者函式使用call指令呼叫被調函式,並把call指令的下一條指令的位址當成返回位址壓入棧中 這個壓棧操作隱含在cal...
activity的任務棧
當activity被建立出來的時候,系統就分給他乙個任務棧,task stack.用於存放activity.任務棧是用來描述activity當前的狀態.內部實現是乙個鍊錶.後進先出.複雜的任務棧.假設任務棧有browseractiviity.webkit.避免出現太多的activity.節約記憶體,...