標籤:
1.整個周期的流程:
1. onCreate( ) :當你第一次建立該activity時調用。你可以在這裡設定靜態代碼,建立View,
綁定資料到列表。
1.1 onRestart ( ): 在你的activity處於onStop狀態後調用
1.2onStart ( ):在這個activity正在變成可視化時
1.2.1 onResume ( ):這個activity的介面與使用者交流時(焦點位置)
1.2.2 onPause ( ):這個介面處於次級視角,不是焦點位置,仍然可見
1.3onStop( ):處於不可見狀態。
2. onDestroy(): 你調用了finish()方法銷毀了該activity,或者其他程式需要記憶體時,它被系統
自動銷毀了,你可以用isFinishing( )方法區分這兩種情況。
2.Actvity 堆棧
每個Actvity的狀態由它所在Activity棧中的位置所決定,所有當前正在啟動並執行Actvity將遵循照後進先出的原則。
3.Activity狀態
隨著Activity的建立和銷毀,也就會進出棧如所示,其中可能會經曆以下四種狀態:
Active狀態:在最當前的位置,有焦點,系統會犧牲所有的資源套件括其他Activity(非active的)來保證它的運行。
Paused狀態:並不是完全不見,只是一個小部分出現在前面上。
Stopped 狀態:完全不可見,完全給遮蔽了當Activity處於Stopped狀態時,一定要儲存當前資料和當前的UI狀態,
否則一 旦Activity退出或關閉時,當前的資料 和UI狀態就丟失了。
Inactive狀態:Activity被殺掉以後或者被啟動以前,處於Inactive狀態。這時Activity已被移除從Activity堆棧中,需要重新啟動才可以顯示和使用。
4.Task
它是一個存放多個的Activity的棧。
特點一:
它是以棧(stack)方式存放多個Activity。
特點二:
多任務功能(MultiTask ):
當使用者按下Home按鈕返回到最上面時,android可以將之前啟動的多個Task
同時放在後台,所有的Activity保持stopped狀態。除非記憶體不夠用時,才會
銷毀部分的Activity 。
特點三:
如何保護好你的Activity的狀態(因為有可能,處於記憶體需要,系統將你的Activity銷毀了)
以防這種情況,你應該在onSaveInstanceState() 裡儲存好該Activity的資訊。
Activity被銷毀後,系統還是會記住它曾經在這個Task裡的位置。
更多的Managing Tasks,可以去看docs,例如:如何讓Activity啟動另一個Task,而不是取代原有的Task ;
如何讓Activity重新開啟一個存在Task底層下的某個Activity,而不是重新建立Activity;如何讓Activity
銷毀一個Task下的所有Activity,除了最底層的Activity。
這些操作都可以通過Activity的屬性(attribute),和Intent的flag去實現。
Android Activity生命週期【圖文】