Source Code
Result
會打這個記錄,最主要就是要用在狀態的儲存和恢復,還有旋轉螢幕的功能該如何實作。參考下面文章:
首次執行
| Class |
Method |
| Main |
onCreate |
| MainFragment |
onAttach |
| Main |
onAttachFragment |
| MainFragment |
onCreate |
| MainFragment |
onCreateView |
| MainFragment |
onViewCreated |
| MainFragment |
onActivityCreated |
| Main |
onStart |
| MainFragment |
onStart |
| Main |
onPostCreate |
| Main |
onResume |
| MainFragment |
onResume |
| Main |
onPostResume |
| Main |
onCreateOptionsMenu |
| Main |
onPrepareOptionsMenu |
Main按Home鍵回到桌面
| Class |
Method |
| MainFragment |
onPause |
| Main |
onPause |
| Main |
onSaveInstanceState |
| MainFragment |
onSaveInstanceState |
| MainFragment |
onStop |
| Main |
onStop |
多工鍵返回或按程式重新進入Main
| Class |
Method |
| Main |
onRestart |
| Main |
onStart |
| MainFragment |
onStart |
| Main |
onResume |
| MainFragment |
onResume |
| Main |
onPostResume |
多工鍵把程式關閉
無任何訊息
把程式關閉後再點程式進入
| Class |
Method |
| Main |
onCreate |
| MainFragment |
onViewStateRestored |
| MainFragment |
onAttach |
| Main |
onAttachFragment |
| MainFragment |
onCreate |
| MainFragment |
onCreateView |
| MainFragment |
onViewCreated |
| MainFragment |
onActivityCreated |
| Main |
onStart |
| MainFragment |
onStart |
| Main |
onPostCreate |
| Main |
onResume |
| MainFragment |
onResume |
| Main |
onPostResume |
| Main |
onCreateOptionsMenu |
| Main |
onPrepareOptionsMenu |
第2個 MainFragment.onViewStateRestored(),有 API Level 17 的限制。
Main執行finish或按返回鍵
這兩個動作的結果是一樣的。
| Class |
Method |
| MainFragment |
onPause |
| Main |
onPause |
| MainFragment |
onStop |
| Main |
onStop |
| MainFragment |
onDestroyView |
| MainFragment |
onDestroy |
| MainFragment |
onDetach |
| Main |
onDestroy |
Main 切換到 Sub
不管有沒有要回傳,都會是以下的結果。
| Class |
Method |
| MainFragment |
onPause |
| Main |
onPause |
| Sub |
onCreate |
| SubFragment |
onAttach |
| Sub |
onAttachFragment |
| SubFragment |
onCreate |
| SubFragment |
onViewCreated |
| SubFragment |
onActivityCreated |
| Sub |
onStart |
| SubFragment |
onStart |
| Sub |
onPostCreate |
| Sub |
onResume |
| SubFragment |
onResume |
| Sub |
onPostResume |
| Sub |
onCreateOptionsMenu |
| Sub |
onPrepareOptionsMenu |
| Main |
onSaveInstanceState |
| MainFragment |
onSaveInstanceState |
| MainFragment |
onStop |
| Main |
onStop |
Sub 執行 finish
包括有回傳值的也是一樣的結果
| Class |
Method |
| SubFragment |
onPause |
| Sub |
onPause |
| MainFragment |
onActivityResult, requestCode: 10 , resultCode: 10 |
| Main |
onRestart |
| Main |
onStart |
| MainFragment |
onStart |
| Main |
onResume |
| MainFragment |
onResume |
| Main |
onPostResume |
| SubFragment |
onStop |
| Sub |
onStop |
| SubFragment |
onDestroyView |
| SubFragment |
onDestroy |
| SubFragment |
onDetach |
| Sub |
onDestroy |
Main 翻轉螢幕
| Class |
Method |
| MainFragment |
onPause |
| Main |
onPause |
| Main |
onSaveInstanceState |
| MainFragment |
onSaveInstanceState |
| MainFragment |
onStop |
| Main |
onStop |
| MainFragment |
onDestroyView |
| MainFragment |
onDestroy |
| MainFragment |
onDetach |
| Main |
onDestroy |
| Main |
onCreate |
| MainFragment |
onAttach |
| Main |
onAttachFragment |
| MainFragment |
onCreate |
| MainFragment |
onCreateView |
| MainFragment |
onViewCreated |
| MainFragment |
onActivityCreated |
| Main |
onStart |
| MainFragment |
onStart |
| Main |
onRestoreInstanceState |
| Main |
onCreateOptionsMenu |
| Main |
onPrepareOptionsMenu |
| Main |
onPostCreate |
| Main |
onResume |
| MainFragment |
onResume |
| Main |
onPostResume |
加入 android:configChanges 設定後,Main 翻轉螢幕
在 AudroidManifest.xml 加入 android:configChanges 設定:
- android:configChanges=”orientation”
- android:configChanges=”orientation|screenSize” (API level 13以上)
- android:configChanges=”orientation|keyboardHidden” (使用 AVD 模擬器測試)
| Class |
Method |
| Main |
onConfigurationChanged |
| MainFragment |
onConfigurationChanged |
剛剛翻轉螢幕的動作全不見了,只剩下 onConfigurationChanged。