1、不设置Activity的Android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。(执行这个方法,必须设置sdk version 大于等于13.0) 然后,我对”切竖屏执行两次“感到不解,然后又再网上找了资料:(两个说法) 1,当推出键盘的时候,会触发硬件的改变,使手机竖屏变成了横屏2,当推进键盘的时候,合上手机的一刻,触发的是同一样的固件,由于,固件是无法辨别那个是推进,和推出,发出的是一样的信号,然后系统就会认为这是一个横屏改变。 2.实际上,模拟器的翻转是以一个逆时针的方向旋转...你按两次 ctrl + f11实际上是翻转了三次... 但是,我在我的华为荣耀6上,系统为4.4上切换横屏和竖屏,最后的结果是这样的: 1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行一次。 2.设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横执行一次再切回竖屏时并不会重新调用。 3.设置Activity的android:configChanges="orientation|keyboardHidden”时,和2反应一样。 4.设置Activity的android:configChanges=“orientation|screeSize”时,切屏不会重新调用各个声明周期。 由此看来系统不同会导致切屏出现不同的反应,查看网上资料发现,好像手机品牌不同也会出现不同的反应。