Android屏幕切换与生命周期的调用
Android屏幕切换与生命周期的调用
1.Activity不设置android:configChange属性
1)竖屏切换到横屏
Activity生命周期执行一次。
onSaveInstanceState(保存) → onPause → onStop → onDestroy → onCreate(需对参数进行判断,为空则创建) → onStart → onRestoreInstanceState(恢复) → onResume
该流程以下简写为onSaveInstanceState → … → onResume
2)横屏切换到竖屏
Activity生命周期执行两次
onSaveInstanceState → … → onResume → onSaveInstanceState → … → onResume
2.Activity设置属性为android:configChange = “orientation”
1)竖屏切换到横屏
Activity生命周期执行一次。同时会在执行完生命周期后回调一次onConfigurationChanged方法。
onSaveInstanceState → … → onResume → onConfigurationChanged
2)横屏切换到竖屏
Activity生命周期执行一次。同时会在执行完生命周期后回调一次onConfigurationChanged方法。
onSaveInstanceState → … → onResume → onConfigurationChanged
3.Activity设置属性为android:configChange = “orientation|keyboardHidden|screenSize”(API ≥ 13)或android:configChange=“orientation|keyboardHidden”(API < 13)
1)竖屏切换到横屏
不重新调用Activity的生命周期。但会回调一次onConfigurationChanged方法。
onConfigurationChanged
2)横屏切换到竖屏
不重新调用Activity的生命周期。但会回调两次onConfigurationChanged方法。
onConfigurationChanged → onConfigurationChanged