今天看到一道面试题,关于Android屏幕旋转时的生命周期,有说到”不设置 Activity 的 android:configChanges 时 , 切屏会重新调用各个生命周期 , 切横屏时会执行一次 , 切竖屏时会执行两次 “,怀着好奇心我决定自己试一下是不是这样。测试过2.3和5.0的系统,发现没设置 android:configChanges ,切屏确实会重新调用各生命周期,但切竖屏时并没有调用两次,切横竖屏都只重新执行一次个生命周期。
此时的翻转屏幕的生命周期为:
无论是横屏切竖屏还是竖屏切横屏,都只重新调用一次。配置了 android:configChanges="orientation|keyboardHidden|screenSize"之后,不会销毁当前activity,此时需要重写onConfigurationChanged方法,切屏只会执行onConfigurationChanged方法。