深入理解 Android Activity的生命週期

之前也說過了解Android Activity是十分重要的,因爲android的應用的生命週期是由android 系統決定的!Android Activity生命週期中可認爲分爲7個階段;用7個函數原型來描述吧
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()

savedInstanceState對象是用於保存activity的對象的狀態,爲什麼要提到這點呢?看看activity的過程描述吧!


更詳細的說明可以看看《Google android 深入淺出》一書!不過看到上圖,我想大家都可以很直觀瞭解到activity的整個過程。每次焦點的變化同時有相應的階段,這樣也是android之所以高效原因之一吧!圖上有三個循環,那又代表什麼呢?沒錯,是activity的三個層面!看下圖吧!


通過兩個圖,你會更清楚的瞭解activity的生命週期了,離開了可見階段,或者說失去了焦點,activity就很可能被進程終止了!爲什麼說是可能呢?如果你可過我之前的博文的話,你應該知道android 虛擬機的工作原理!

activity主要生命週期的方法說明:
onCreate(Bundle savedInstanceState):創建activity時調用。設置在該方法中,還以Bundle的形式提供對以前儲存的任何狀態的訪問!
onStart():activity變爲在屏幕上對用戶可見時調用。
onResume():activity開始與用戶交互時調用(無論是啓動還是重新啓動一個活動,該方法總是被調用的)。
onPause():activity被暫停或收回cpu和其他資源時調用,該方法用於保存活動狀態的,也是保護現場,壓棧吧!
onStop():activity被停止並轉爲不可見階段及後續的生命週期事件時調用。
onRestart():重新啓動activity時調用。該活動仍在棧中,而不是啓動新的活動。
onDestroy():activity被完全從系統內存中移除時調用,該方法被調用可能是因爲有人直接調用onFinish()方法或者系統決定停止該活動以釋放資源!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章