1. 程式人生 > >android 7個生命週期方法分別在4個階段按一定的順序進行呼叫

android 7個生命週期方法分別在4個階段按一定的順序進行呼叫

4個階段如下:

1.開始Activity:在這個階段依次執行3個生命週期方法,分別是onCreate、onStart和onResume。

2.Activity失去焦點:如果在Activity獲得焦點的情況下進行其他的Activity或應用程式,當前Activity會失去焦點,在這一階段會依次執行onPause和onStop方法

3.Activity重新獲得焦點:如果activity重新獲得焦點,會依次執行3個生命週期方法,分別是onRestart、onStart和onResume

4.關閉Activity:當activity被關閉時,系統會依次執行3個生命週期方法,分別是onPause、onStop和onDestroy。

  如果在這4個階段執行生命週期方法的過程中不會發生狀態的改變,系統會按照上面的描述依次執行這4個階段中的生命週期方法,但如果在執行過程中改變了狀態,系統會按照更復雜的方式呼叫生命週期方法。

   在執行的過程中可以改變系統的執行軌跡的生命週期方法是onPause和onStop。如果在執行onPause方法的過程中Activity重新獲得了焦點,然後又失去了焦點,系統將不會在執行onStop方法,而是按照如下的順序執行相應的生命週期方法:

onPause-->onResume-->onPause

如果在執行onStop方法的過程中Activity重新獲得了焦點,然後又失去了焦點,系統將不會執行onDestroy方法,而是按照如下執行順序執行相應的生命週期方法

onStop-->onRestart-->onStart-->onResume-->onPause-->onStop


如圖所示Activity生命週期不難看出,在這個圖中包含了二層迴圈,第一層迴圈是onPause-->onResume-->onPause,

第二層迴圈是:onStop-->onRestart-->onStart-->onResume-->onPause-->onStop.

我們可以將這二層迴圈看成是整個Activity生命週期中的子生命週期。第一層迴圈稱為焦點生命週期,第二層迴圈視為可視生命週期。也就是說,第一層迴圈是activity焦點的獲得與失去的過程中迴圈,在這一過程中,Activity始終是可見的。第二層迴圈是在Activity可見於不可見的過程中迴圈,在這個過程中伴隨著Activity焦點的獲得與失去,也就是說,Activity首先會被顯示,然後會獲得焦點,接著失去焦點,最後由於彈出其他Activity,使當前的Activity變成不可以見。因此,Activity有如下3種生命週期

整體生命週期:onCreate-->....-->onDestroy
可視生命週期:onStart-->...-->onStop

焦點生命週期: onResume-->onPause