Activity橫豎屏切換生命週期

Activity橫豎屏切換生命週期

網上大多博客結論,清單文件Activity未配置configChanges屬性,切到橫屏後,再切回豎屏時,會走兩遍onPause——onSaveInstanceState——onStop——onDestroy——onCreate——onStart——onRestoreInstanceState——onResume 生命週期方法。本人在Android系統不一樣版本通過測試發現,實際狀況和網上大多博客描述不一樣,特記錄下實際測試狀況。有誤解之處,還望指出,共同探討。bash

Android8.0及以上

  • 沒配置configChanges屬性,切到橫屏和再切到豎屏,生命週期調用順序都表現爲:
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
複製代碼
  • 只要隨意配置了configChanges屬性,切到橫屏和再切到豎屏,生命週期調用順序都表現爲:
onConfigurationChanged
複製代碼

Android7.0、7.1.1

  • 沒配置configChanges屬性和沒配置全configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命週期調用順序都表現爲:
onConfigurationChanged
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
複製代碼
  • 配置了configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命週期調用順序都表現爲:
onConfigurationChanged
複製代碼

Android6.0及如下

  • 未配置configChanges屬性和未配置全configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命週期調用順序都表現爲:
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
複製代碼
  • 配置了configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命週期調用順序都表現爲:
onConfigurationChanged
複製代碼
相關文章
相關標籤/搜索