活動的生命周期系列(一)活動棧的生命周期


      生命周期對程序員很重要,特別當我們了解,就可以寫出更流暢的程序,更好的來避規性能瓶頸,讓我們的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()之間就是前台生存期。在前台生存期,活動總是處於運行狀態或棧的頂部,此時活動是可以和用戶進行交互的,我們平時接觸最多的就是這種。下面這張圖就很好的說明了,(圖非本人所畫)。   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM