Android四大元件之Activity----重新認識Android(4)
看一下這一張經典的生命週期流程圖,瞭解Activity生命週期的幾個過程:
1.啟動Activity:系統會先呼叫onCreate方法,然後呼叫onStart方法,最後呼叫onResume,Activity進入執行狀態。
2.當前Activity被其他Activity覆蓋其上或被鎖屏:系統會呼叫onPause方法,暫停當前Activity的執行。
3.當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會呼叫onResume方法,再次進入執行狀態。
4.當前Activity轉到新的Activity介面或按Home鍵回到主屏,自身退居後臺:系統會先呼叫onPause方法,然後呼叫onStop方法,進入停滯狀態。
5.使用者後退回到此Activity:系統會先呼叫onRestart方法,然後呼叫onStart方法,最後呼叫onResume方法,再次進入執行狀態。
6.當前Activity處於被覆蓋狀態或者後臺不可見狀態,即第2步和第4步,系統記憶體不足,殺死當前Activity,而後使用者退回當前Activity:再次呼叫onCreate方法、onStart方法、onResume方法,進入執行狀態。
7.使用者退出當前Activity:系統先呼叫onPause方法,然後呼叫onStop方法,最後呼叫onDestory方法,結束當前Activity。
再說一下activity的活動過程:
另外還有其他三個方法需要注意:
1.onWindowFocusChanged方法:在Activity視窗獲得或失去焦點時被呼叫,例如建立時首次呈現在使用者面前;當前Activity被其他Activity覆蓋;當前Activity轉到其他Activity或按Home鍵回到主屏,自身退居後臺;使用者退出當前Activity。
2.onSaveInstanceState:(1)在Activity被覆蓋或退居後臺之後,系統資源不足將其殺死,此方法會被呼叫;(2)在使用者改變螢幕方向時,此方法會被呼叫;(3)在當前Activity跳轉到其他Activity或者按Home鍵回到主屏,自身退居後臺時,此方法會被呼叫。第一種情況我們無法保證什麼時候發生,系統根據資源緊張程度去排程;第二種是螢幕翻轉方向時,系統先銷燬當前的Activity,然後再重建一個新的,呼叫此方法時,我們可以儲存一些臨時資料;第三種情況系統呼叫此方法是為了儲存當前視窗各個View元件的狀態。onSaveInstanceState的呼叫順序是在onPause之前。
3.onRestoreInstanceState:(1)在Activity被覆蓋或退居後臺之後,系統資源不足將其殺死,然後使用者又回到了此Activity,此方法會被呼叫;(2)在使用者改變螢幕方向時,重建的過程中,此方法會被呼叫。我們可以重寫此方法,以便可以恢復一些臨時資料。onRestoreInstanceState的呼叫順序是在onStart之後。
4.每次螢幕旋轉方向時,只有onConfigurationChanged方法被呼叫,沒有了銷燬重建的過程。需要注意的幾點:
1.如果<activity>配置了android:screenOrientation屬性,則會使android:configChanges="orientation"失效。
2.模擬器與真機差別很大:模擬器中如果不配置android:configChanges屬性或配置值為orientation,切到橫屏執行一次銷燬->重建,切到豎屏執行兩次。真機均為一次。模擬器中如果配置android:configChanges="orientation|keyboardHidden"(如果是Android4.0,則是"orientation|keyboardHidden|screenSize"),切豎屏執行一次onConfigurationChanged,切橫屏執行兩次。真機均為一次。
相關文章
- Android元件---重新認識Android(2)Android元件
- Android常用佈局元件----重新認識Android(3)Android元件
- [Android]元件化-重新認識AndroidManifestAndroid元件化
- Android非同步----重新認識Android(6)Android非同步
- Android的儲存----重新認識Android(9)Android
- Android的SQLite----重新認識Android(10)AndroidSQLite
- Android之四大元件Android元件
- Android程式的結構---重新認識Android(1)Android
- Android 四大元件之 ServiceAndroid元件
- Android 四大元件之 ActivityAndroid元件
- Android四大元件之ActivityAndroid元件
- Android 四大元件之" Service "Android元件
- Android 四大元件之 " Activity "Android元件
- Android的Menu_Dialog----重新認識Android(8)Android
- Android 四大元件之 BroadcastReceiverAndroid元件AST
- Android四大元件之Service篇Android元件
- Android四大元件之BroadcastReceiverAndroid元件AST
- Android四大元件之Activity篇Android元件
- Android 四大元件之“ BroadcastReceiver ”Android元件AST
- Android啟動模式及Intent屬性----重新認識Android(5)Android模式Intent
- AndroidListView、GridView----重新認識Android(7)AndroidView
- Android 四大元件之 ContentProviderAndroid元件IDE
- Android四大元件之BroadcastReceiver篇Android元件AST
- Android四大元件之Service,以及IntentServiceAndroid元件Intent
- Android四大元件之ContentProviderAndroid元件IDE
- 【Android】安卓四大元件之Activity(二)Android安卓元件
- Android 四大元件之" ContentProvider "Android元件IDE
- Android面試常客--四大元件之ActivityAndroid面試元件
- Android四大元件之ContentProvider篇Android元件IDE
- Android四大元件之——BroadcastReceiver介紹Android元件AST
- Android學習之四大元件(二)——serviceAndroid元件
- 重新認識受控和非受控元件元件
- (一) Android 四大元件Android元件
- Android四大元件概述Android元件
- 重新認識React Native和Android的通訊原理React NativeAndroid
- 完全看懂 Android 四大元件之 Activity(上)Android元件
- Android學習之四大元件(四)——BroadcastReceiverAndroid元件AST
- 【Android】安卓四大元件之內容提供者Android安卓元件