Android横竖屏切换生命周期的变化
在面试的时候,面试官可能会问到进行横竖屏切换时Activity生命周期的变化,今天恰好有空,就自己写了个Demo看看。
从竖屏切换为横屏的时候,Activity的生命周期变化如下:
我们可以看到竖屏切换到横屏的时候Activity先被销毁了,然后开启重建。值得注意的是,在onPause之后,Activity调用了onSaveInstanceState方法,保存一些View层次结构的数据,如TextView的文本信息。然后在onStrat方法后调用了onRestoreInstanceState方法还原页面。
从横屏切换为竖屏的时候,Activity的生命周期变化如下:
从横屏切换到竖屏生命周期的变化是一致的。
为Activity添加 android:configChanges="orientation" 后的生命周期变化如下:
这里可以看到添加android:configChanges属性后,Activity在旋转屏幕的时候任然会销毁重建。这是为什么了,在查看了资料后,发现如果minSdkVersion和targetSdkVersion有一个大于13的话,为了防止屏幕旋转时重启,除了orientation,我们还要加上screenSize.如下图所示:
为Activity添加 android:configChanges="orientation|screenSize" 后的生命周期变化如下:
我们可以看到添加ScreenSize属性后Activity就不会销毁重建了