一、生命周期
1、不设置configChanges的情况下的生命周期如下所示:
这里可以清晰得看到,Activity再次重新创建了。。。
2、设置android:configChanges="orientation|keyboardHidden|screenSize"的情况下的生命周期如下所示:
其中红色方框中的log是屏幕旋转后的,只要眼神没问题,依然可以清晰的看到,这次Activity并没有重新创建,而是直接回调了onConfigurationChanged()方法,这样就避免了因为横竖屏切换而导致的Activity重新创建的问题。
二、说明和注意:
1、测试手机是小米8,Android 8.1.0
2、android:configChanges="orientation|keyboardHidden|screenSize"必须设置三个参数,少一个都不行,真机上测试,少一个 参数都会重新创建Activity;但是我想吐槽AS模拟器一下,一开始的时候我是用AS模拟器做的测试,模拟器是8.0的系统,我只写了orientation|keyboardHidden两个参数,在模拟器上就已经不重新创建Activity了,直接回调onConfigurationChanged()方法,但是小米8的真机上依然会重新创建Activity,所以以后做类似的测试最好用真机,模拟器毕竟是模拟器,就好比充气娃娃只能是个充气娃娃。。。