在Android應用程序運行時,Activity的活動狀態由Android以Activity棧的形式管理,當前活動的Activity位於棧頂。隨着應用程序之間的切換、關閉等,每一個Activity都有可能從活動狀態轉入非活動狀態,固然,也能夠從非活動狀態轉入活動狀態。測試
下面,咱們藉助一個關於Activity生命週期模型圖進行理解。spa
從圖中能夠看出來,在Activity的生命週期中,會有以下方法會被系統回調:blog
void onCreate(Bundle savedInstanceState):建立Activity時會被回調。
void onStart():首次建立Activity時在onCreate方法以後執行,但會有另一種狀況,後面會進行分析,總之,就是啓動Activity時被回調。
void onRestart():該活動在Activity沒有被銷燬時會一直存在Activity棧中,從新啓動Activity時會被回調。
void onResume():用戶在進行Activity切換時,恢復相應的Activity時回調。在void onStart()方法後必定會回調的方法。
void onPause():Activity被暫停時回調,活動會被壓倒棧中。
void onStop():Activity被中止時回調。
void onDestroy():Activity被銷燬時回調,徹底從系統內存中移除。
總結概括起來,Activity會有四種狀態:生命週期
我經過程序測試得出Activity的7個方法會在什麼時候進行回調。進程
由以上實驗得onCreate和onDestroy該方法在週期中只會被調用一次。內存