當裝置旋轉時android生命週期方法的呼叫順序
特別注意onSaveInstanceState
並不是生命週期方法
當裝置旋轉時,通過Log可以看出:
裝置銷燬Activity例項:
01-05 20:07:11.289 7860-7860/? D/QuizActivity:
onPause(Bundle)
called01-05 20:07:11.290 7860-7860/? I/QuizActivity:
onSaveInstanceState
01-05 20:07:11.290 7860-7860/? D/QuizActivity:
onStop(Bundle)
called01-05 20:07:11.317 7860-7860/? D/QuizActivity:
onDestroy(Bundle)
called
重建Activity例項:
01-05 20:07:11.353 7860-7860/? D/QuizActivity:
onCreate(Bundle)
called01-05 20:07:11.373 7860-7860/? D/QuizActivity:
onStart(Bundle)
called01-05 20:07:11.377 7860-7860/? D/QuizActivity:
onResume(Bundle)
called
*繼續深入
當我把setting->developer option->Don't keep activities開啟後再進行測試:
點選Back鍵
01-05 21:15:38.946 13590-13590/? D/QuizActivity:
onPause(Bundle)
called01-05 21:15:39.878 13590-13590/? D/QuizActivity:
onStop(Bundle)
called01-05 21:15:39.886 13590-13590/? D/QuizActivity:
onDestroy(Bundle)
called發現
onSaveInstanceState
並沒有被呼叫點選Home鍵
01-05 21:17:43.975 13590-13590/? D/QuizActivity:
onPause(Bundle)
called01-05 21:17:44.723 13590-13590/? I/QuizActivity:
onSaveInstanceState
01-05 21:17:44.723 13590-13590/? D/QuizActivity:
onStop(Bundle) called
01-05 21:17:44.741 13590-13590/? D/QuizActivity:
onDestroy(Bundle)
called
當把Don't keep activities選項關閉後再進行上述相同測試發現:
唯一不同的是點選Home鍵依次執行:
01-05 21:17:43.975 13590-13590/? D/QuizActivity:
onPause(Bundle)
called01-05 21:17:44.723 13590-13590/? I/QuizActivity:
onSaveInstanceState
01-05 21:17:44.723 13590-13590/? D/QuizActivity:
onStop(Bundle) called
Activity沒有被Destroy
而點選Back鍵,Activity都會被銷燬(也不會儲存activity的狀態,即:不呼叫onSaveInstanceState
)。可以理解為Back鍵相當於通知系統“使用者不再需要當前的Activity”。
內容參考:Android程式設計權威指南
相關文章
- Android之Activity介面跳轉--生命週期方法呼叫順序Android
- 圖解React的生命週期及執行順序圖解React
- 瞭解Android核心元件活動生命週期————旋轉螢幕Android元件
- Vue 基礎篇(四):父子元件的生命週期順序Vue元件
- Android Activit生命週期方法Android
- 附例項!圖解React的生命週期及執行順序圖解React
- iOS程式執行順序和UIViewController 的生命週期(整理)iOSUIViewController
- [Android]Activity的生命週期Android
- Android MediaPlayer的生命週期Android
- android:碎片的生命週期Android
- Android Activity生命週期Android
- 【Android原始碼】Activity是如何建立的,以及生命週期的呼叫Android原始碼
- HarmonyOS 應用生命週期有哪些? 按返回鍵會呼叫哪些生命週期?
- Vue父子元件生命週期執行順序及鉤子函式的個人理解Vue元件函式
- Servlet生命週期與方法Servlet
- android解鎖屏時Activity生命週期的變化Android
- [轉] IOS中AppDelegate中的生命週期事件的呼叫條件iOSAPP事件
- Android之各生命週期Android
- Android Activity是如何啟動的?Activity的生命週期是如何呼叫的?Android
- Android View的生命週期詳解AndroidView
- 在vue生命週期裡呼叫函式時犯的一個錯誤Vue函式
- View生命週期與Activity生命週期的關係View
- Android Service生命週期淺析Android
- Android Fragment生命週期深入探究AndroidFragment
- Android 元件系列-----Activity生命週期Android元件
- Android Activity生命週期詳解Android
- Android程式生命週期ProcessLifecycleAndroid
- 專案生命週期(轉載)
- API版本控制的生命週期方法 - nordicapisAPI
- Vue原始碼學習(八):生命週期呼叫Vue原始碼
- android Activity A和B互相跳轉 生命週期的變化Android
- 多級時序系統:機器週期,時鐘週期
- 生命週期
- Android Activity生命週期的一點感悟Android
- Android:聊聊 MVP 中 Presenter 的生命週期AndroidMVP
- 初識Android之Activity的生命週期Android
- Android Fragment的生命週期和返回棧AndroidFragment
- 開發方法---軟體生命週期