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生命週期結束
謝謝您的閱覽,學習愉快~