详解横竖屏切换时Activity的生命周期
默认情况下,横竖屏切换,无论是横屏切换竖屏还是竖屏切换横屏,都会重新走一次Activity的生命周期,即Activity会重新创建一次,而不会出现网络上提到的横屏切换回竖屏生命周期走两遍的情况。
在2.3版本的机器上,所走的生命周期方法流程如下:
onSaveInstanceState ---> onPause ---> onStop ---> onCreate --->onStart ---> onRestoreInstanceState ---> onResume;
在4.0的机器上,所有的生命周期方法流程如下:
onPause --->onSaveInstanceState --->onStop ---> onCreate --->onStart --->onRestoreInstanceState ---->onResume;
怎么解决横竖屏切换Activity重新创建的问题呢?
有两种方法。
方法1.直接写死屏幕的朝向,为竖屏或横屏。
方法2.在manfest中设置:
android:configChange = "orientation | keyboardHidden | screenSize"。
注意:如果只设置configChange = "orientation“是不起作用的。
如果只设置android:configChange = "orientation | keyboardHidden ",在2.3的机器上是不会重新创建Activity的,但是在4.0的机器上就有所不同了。如果targetVersion <= 12,则不会重新创建Activity,如果targetVersion>12,则重新创建Activity;