Activity横竖屏切换, 生命周期变化

来源:互联网 发布:民国书法家知乎 编辑:程序博客网 时间:2024/05/16 15:03

Activity横竖屏切换生命周期变化


1. 新建一个Activity并把各个生命周期都打印(未配置该Activity 的android:configChanges)

2. 运行Activity, 得到如下打印信息

onCreate
onStart
onResume


3. 切换横屏时, 打印
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume


4. 再次切回竖屏时,打印
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume


总结1:Activity未设置android:configChanges时,切屏时会重新调用各个生命周期,且横屏时会调用一次,切竖屏时会调用两次;

5. 修改AndroidManifest.xml, 把该Activity添加android:configChanges="orientation", 然后重新运行,然后切换横屏,打印
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume


6. 切换竖屏,打印
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onConfigurationChanged


总结2:Activity设置android:configChanges="orientation", 切屏时会重新调用各个生命周期,且横、竖屏只会调用一次

7. 修改该Activity的android:configChanges="orientation|keyboardHidden", 然后重新运行,切换横屏时,打印
onConfigurationChanged

8. 切换竖屏时,打印
onConfigurationChanged
onConfigurationChanged

总结3:设置Activity 的android:configChanges="orientation|keyboardHidden", 切屏时不会重新调用各个生命周期,只会执行onConfigurationChanged方法











0 0
原创粉丝点击