Android開發之Activity的生命週期

                                                              Android開發之Activity的生命週期

     關於Activity的生命週期主要是看6個方法的執行過程

       我畫了個草圖

      

 這個是網上找的更爲詳細的週期圖片




      我們現在來講解一下,當用戶點擊一個app後,首個activity的oncreat()方法被調用,

  標誌着該Activity的生命週期的開始,當這個activity的頁面充滿整個手機屏幕的時         候,onstart()方法被調用,此時此activity的可視生命週期開始,而此時這個頁面也處於

最前方,也稱之爲前臺,此時它的onResume方法被調用,頁面獲取焦點,這就意味着它上面的button組件是可以被用戶點擊的,此時該activity的前臺生命週期開始。

      當另一個activity覆蓋此activity時onPause()就會被調用,界面失去焦點,控件不能得到點擊事件,此時前臺生命週期結束,此時又分爲兩種情況,

       假設剛開始的activity爲activity01

       1、:activity02完全覆蓋了activity01,activity不可見,如圖:

       

        此時activity02 的onCreate(),onStart(),onResume()方法逐一被調用,

       activity01的onPause(),onStop()依次被調用,activity01前臺生命週期,可視生命週期結束依次結束。

         但,此時的activity01並沒有被銷燬,而是靜待時機,而後他會有兩種命運

          ①:內存空間不足時 ----  它會被殺掉,進入到oncreat方法中等待再次被調用

          ②:內存足夠,又一次被調用,先啓動onRestart()方法,進入啓動,然後調用

                 onStart()方法,開啓新的旅程。

        2、:後啓動的activity如activity03以對話框的形式出現,並沒有完全覆蓋activity01

                  ,它仍可視,如圖:

        

          此時,activity03依次調用oncreat(),onstart(),onResume()方法,開啓activity03的生命週期,直接進入前臺生命週期、可視生命週期

          此時對於activity01,調用onPause(),界面失去焦點,控件不能得到點擊事件,前臺生命週期結束,但是因爲依然可見,onStop()方法並沒有被調用,activity01依然處於可視生命週期.

          最後當用戶退出app時,所有activity的onDestroy()方法被調用,activity生命週期結束

         

        謝謝您的閱覽,學習愉快~


發佈了67 篇原創文章 · 獲贊 51 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章