做Android大約兩年了,但是身爲女程序媛,感覺自己還是寫的東西少。
從0開始學Android這個系列慢慢更新吧。
今天要講的就是我們都熟悉的生命週期。
在網上我們一搜就是有很多的生命週期圖,下面是我畫的一幅易懂的基礎生命週期圖。
生命週期和啓動模式有關嗎?當然是有相應的關係呢。
我們現在介紹一下標準模式下的Activity的生命週期在不同情況下所走的流程是怎樣的吧。我建議還是你手敲一遍代碼根據log日誌,這樣印象會更深一些。
Activity啓動模式:標準模式standard下的生命週期
Activity啓動運行走的是onCreate()->onStart()->onResume()
當手機鎖屏的時候,Activity的生命週期是onPause ()->onStop()
當手機解鎖的時候, Activity的生命週期是onRestart()->onStart()->onResume()
當手機切換到第二個界面的時候,Activity的生命週期是
第一個Activity的生命週期是onPause()->onStop()
第二個Activity的生命週期是onCreate()->onStart()->onResume()
當手機返回第一個界面的時候,Activity的生命週期是
第二個Activity的生命週期是onPause()->onStop()->onDestroy()
第一個Activity的生命週期是onRestart()->onStart()->onResume()
當程序退居後臺的時候Activity的生命週期是onPause()->onStop()
當程序從後臺返回到前臺的時候Activity的生命週期是onRestart()->onStart()->onResume()
當屏幕旋轉的時候,Activity的生命週期是
onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()
Activity退居後臺,且系統內存不足,系統會殺死這個後臺狀態的Activity(此時這個Activity引用仍然處在任務棧中,只是這個時候引用指向的對象已經爲null),若再次回到這個Activity,則會走onCreate()–>onStart()—>onResume()(將重新走一次Activity的初始化生命週期)