歡迎光臨
每天分享高質量文章

Activity生命週期詳解一

關於Activity的生命週期網上也有很多文章,最經典的莫過於官方的一張圖解了。

這張圖列出了Activity生命週期最主要的一些方法,啟動後依次執行:

onCreate –> onStart –> onResume –> onPause –> onStop –> onDestroy

相信很多人也都已經知道以上方法與執行順序,但是Activity還有其他方法,如onContentChanged, onPostCreate, onPostResume, onConfigurationChanged, onSaveInstanceState, onRestoreInstanceState,下麵我做了一個Demo來徹底研究下這些生命週期的方法:

程式啟動執行並結束上述生命週期的方法執行順序是這樣的:

onCreate –> onContentChanged –> onStart –> onPostCreate –> onResume –> onPostResume –> onPause –> onStop –> onDestroy

  • onContentChanged

onContentChanged()是Activity中的一個回呼方法

當Activity的佈局改動時,即setContentView()或者addContentView()方法執行完畢時就會呼叫該方法, 例如,Activity中各種View的findViewById()方法都可以放到該方法中。

  • onPostCreate、onPostResume

onPostCreate方法是指onCreate方法徹底執行完畢的回呼,onPostResume類似,這兩個方法官方說法是一般不會重寫,現在知道的做法也就只有在使用ActionBarDrawerToggle的使用在onPostCreate需要在螢幕旋轉時候等同步下狀態,Google官方提供的一些實體就是如下做法:

  • onPause、 onStop

這裡順便再提一下onPause、 onStop的區別, onPause是在整個視窗被半遮蓋或者半透明的時候會執行,而onStop則是在整個視窗被完全遮蓋才會觸發, 觸發onStop的方法之前必定會觸發onPause方法。

  • onCreate、 onStart

onCreate方法會在第一次建立的時候執行,緊接著便會執行onStart方法,之後頁面被完全遮擋會執行onStop方法,再傳回的時候一般便會執行onRestart –> onStart方法, 但是如果如果這時候App記憶體不夠需要更多的記憶體的時候,App便會殺死該行程,結束掉該Activity,所以這時候再傳回的時候便會重新執行onCreate –> onStart –> onResume方法。

  • onSaveInstanceState、 onRestoreInstanceState

這是一個比較深入的話題,後面會單獨來講,敬請期待!

點選”閱讀原文“即可檢視原文部落格,大家如果覺得對你有幫助的話,不妨推薦身邊的朋友關註此賬號,如果有什麼建議或者推薦的可直接留言給我。

贊(0)

分享創造快樂