项目在华为荣耀8,android8上出现一个bug,程序进入activity A,然后跳转到activityB, 在activityB 改变虚拟键显示或隐藏(同上个页面不同),返回activity A ,activity A 崩溃,查看原因是 activity A 页面重建了,重走了一次生命周期,导致页面某些变量空指针。
androidManifest 中 activity A已设置
android:configChanges="keyboard|orientation|keyboardHidden|screenSize|uiMode" 仍不起作用。
通过在activity A oncreate() 、 onConfigurationChanged(Configuration newConfig) 通过
Configuration configuration = getResources().getConfiguration();
对比跳转前后两次的configuration:
切换前:
跳转后返回:
发现 screenLayout 变化了
因此
androidManifest 中 activity a 配置改为
android:configChanges="keyboard|orientation|keyboardHidden|screenSize|uiMode|screenLayout"
问题解决