生命周期對程式員很重要,特別當我們瞭解,就可以寫出更流暢的程式,更好的來避規性能瓶頸,讓我們的APP擁有更好的用戶體驗。我們繼續來分享“活動狀態及生存周期”,活動狀態:運行狀態,暫停狀態,停止狀態,銷毀狀態。活動的生成周期分別為:onCreate()、onSart()、onResme()、onPau... ...
生命周期對程式員很重要,特別當我們瞭解,就可以寫出更流暢的程式,更好的來避規性能瓶頸,讓我們的APP擁有更好的用戶體驗。我們繼續來分享“活動狀態及生存周期”,活動狀態:運行狀態,暫停狀態,停止狀態,銷毀狀態。活動的生成周期分別為:onCreate()、onSart()、onResme()、onPause()、onStop()、onDestroy()、onRestart()。
1.運行狀態:當一個活動處於棧的頂部時,這時活動就處於活動狀態,系統是不願意回收處於活動狀態的,會影響用戶體驗。
2.暫停狀態:當一個活動不再處於棧的頂部時,但仍然可見時,這時就是暫停狀態了。處於暫停狀態的活動仍然可見,系統也願意回收,剛樣也會影響用戶體驗。
3.停止狀態:當一個活動不再處於棧的頂部時,並且完全不可見時,這時就是停止狀態了。系統仍然會為這種活動保存成員變數和相應的狀態,只有在記憶體很低的情況下才會進行回收。
4.銷毀狀態:當一個活動從棧中移除時,這時就是銷毀狀態了。系統會最先處理這種活動,以釋放手機的記憶體空間。
活動的生存期(ActivityLifetime):Activity類中定義了7個回調方法分別是:onCreate()、onSart()、onResme()、onPause()、onStop()、onDestroy()、onRestart()。這7種方法覆蓋了活動生命周期的每人環節,下麵我們來一 一瞭解道來。
1.onCreate():初始化操作,所有活動都從這裡啟始。這裡可以載入佈局,或綁定事件等。
2.onSart():這個是活動變為不可見時調用。
3.onResme():這個方法一直處於棧的頂部,在和用戶交互時調用,一直處於動行狀態。
4.onPause():系統準備去啟動或者恢復另一個活動時調用。這個方法以通常用來釋放記憶體或保存數據,一定要快,不然會影響到棧頂部的活動運行。
5.onStop():這個方法是活動處於不可見時調用,它與onPause()的區別在於如果啟動的活動是一個對話框式的,則onPause()會得到執行而onStop()的不會執行。
6.onDestroy():這個是活動被回收時調用,調用後活動就會被回收。
7.onRestart():重啟處於停止狀態的活動。
以上7種狀態除onRestart()外,都是成對出現的。可以簡化成三個活動期:
1.完整期:活動處於onCreate()和onDestroy()之間的就是完成生命周期。在onCreate()實例化,在onDestroy()銷毀。
2.可見生存期:活動在處於onSart()和onStop()之間的就是可見生期存。與上面同樣,在onSart()中創建,在onStop()中回收。
3.前臺生存期:onResme()和onPause()之間就是前臺生存期。在前臺生存期,活動總是處於運行狀態或棧的頂部,此時活動是可以和用戶進行交互的,我們平時接觸最多的就是這種。下麵這張圖就很好的說明瞭,(圖非本人所畫)。