上一篇總體講解了Activity的生命週期的一些方法,這篇來結合一些特定的使用場景來分析下Activity的生命週期。
-
首次啟動
onCreate –> onStart –> onResume
-
按下傳回按鍵
onPause –> onStop –> onDestroy
-
按Home鍵
onPause –> onStop
-
再次開啟
onRestart –> onStart –> onResume
-
螢幕旋轉
如果你不做任何配置
啟動Activity會執行如下方法:
onCreate –> onStart –> onResume
之後旋轉螢幕,則Activity會被銷毀並重新建立,之後便會執行如下方法:
onPause –> onSaveInstanceState –> onStop –> onDestroy –> onCreate –> onStart –> onRestoreInstanceState –> onResume
在AndroidManifest配置檔案裡宣告android:configChanges屬性
預設螢幕旋轉會重新建立,當然可以透過在配置檔案裡加上如下程式碼:
android:configChanges=”keyboardHidden|orientation|screenSize”(sdk>13時需加上screenSize)
這個時候再旋轉螢幕便不會銷毀Activity,這時候再旋轉螢幕可以看到只會執行onConfigurationChanged方法,有什麼在螢幕旋轉的邏輯可以重寫這個方法:
-
FirstActivity開啟SecondActivity
FirstActivity開啟SecondActivity,這時候FirstActivity生命週期的方法是這樣的: onPause –> onSaveInstanceState –> onStop, 這個時候在SecondActivity按傳回鍵,FirstActivity會有以下集中情況:
-
正常情況下會執行: onRestart -> onStart -> onResume
-
當系統由於要回收記憶體而把 activity 銷毀時
Activity在onPause或者onStop狀態下都有可能遇到由於突發事件系統需要回收記憶體,之後的onDestroy方法便不會再執行,這時候會執行: onCreate –> onStart –> onRestoreInstanceState –> onResume
點選”閱讀原文“即可檢視我的部落格主頁,大家如果覺得對你有幫助的話,不妨推薦身邊的朋友關註此賬號,如果有什麼建議或者推薦的可直接留言給我。