Android-8.0应用夜间模式在旋转屏幕等操作后导致的日夜间模式切换混乱问题

关键字:  Android-8.0 , android支持库实现的夜间模式, onConfigurationChanged()

Google-io好像是在2016年在v7支持库内新增了一套夜间模式的实现方案,期间在v7-23.*版本好像出过类似的bug:

app切换夜间模式后,在执行视频全屏/切换系统字体等操作(执行onConfigurationChanged()方法)后会出现app的日夜间资源混乱的问题。但是看起来在25版本后已经修复了这个问题。


我们应用最近爆发除了这个问题,统计发现,之后android-8.0, android-8.1出现了。我估计这应该也是v7包的一个bug,至少我把v7版本更新到最新的版本(26.0.0-beta2)还是有这个问题。

查了好久找到了个临时的方案:

if (Build.VERSION.SDK_INT >= 26) {
           
            //TODO 跟踪下官方对supportlib的更新,可能最近会有这方面问题的修复.
            UiModeManager uiManager = (UiModeManager) getSystemService(Context.UI_MODE_SERVICE);
            uiManager.setNightMode(nightMode ? UiModeManager.MODE_NIGHT_YES : UiModeManager.MODE_NIGHT_NO);
        }

如果这确实是v7包的问题,我说的办法也绝对不是个好的解决方案(当切换夜间后退出客户端应该是有launcher的刷新的效果),关注下v7包最近的更新也许更好些。


如果最近谁遇到这个问题也许可以临时添加下这个代码修复一下这个问题。


希望能有帮助, 我自己也记录一下。

你可能感兴趣的:(Android移动开发)