Activity橫豎屏切換生命周期
網(wǎng)上大多博客結(jié)論,清單文件Activity未配置configChanges屬性,切到橫屏后,再切回豎屏?xí)r,會(huì)走兩遍onPause——onSaveInstanceState——onStop——onDestroy——onCreate——onStart——onRestoreInstanceState——onResume 生命周期方法。本人在Android系統(tǒng)不同版本經(jīng)過(guò)測(cè)試發(fā)現(xiàn),實(shí)際情況和網(wǎng)上大多博客描述不同,特記錄下實(shí)際測(cè)試情況。有誤解之處,還望指出,共同探討。
Android8.0及以上
- 沒(méi)配置configChanges屬性,切到橫屏和再切到豎屏,生命周期調(diào)用順序都表現(xiàn)為:
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
- 只要隨意配置了configChanges屬性,切到橫屏和再切到豎屏,生命周期調(diào)用順序都表現(xiàn)為:
onConfigurationChanged
Android7.0、7.1.1
- 沒(méi)配置configChanges屬性和沒(méi)配置全configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命周期調(diào)用順序都表現(xiàn)為:
onConfigurationChanged
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
- 配置了configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命周期調(diào)用順序都表現(xiàn)為:
onConfigurationChanged
Android6.0及以下
- 未配置configChanges屬性和未配置全configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命周期調(diào)用順序都表現(xiàn)為:
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
- 配置了configChanges屬性是orientation|keyboardHidden|screenSize,切到橫屏和再切到豎屏,生命周期調(diào)用順序都表現(xiàn)為:
onConfigurationChanged