背景:
在分享了关于Configration如何触发Activity重新recreate文章:
Activity的reLaunch及onConfigurationChanged android源码分析
在文章发布后,就有热情的粉丝朋友进行留言:
这个粉丝反馈在Android 12以后版本,只要设置有Wallpaper切换后,就发现Activity会进行重启问题,问如何规避?
针对这个设置壁纸后会导致Activity进行重启问题,其实在原来公司也有遇到和处理过,所以针对这样一个问题其实还是比较熟悉的。
Android12以后壁纸切换为啥导致Activity重启
先来说说为啥壁纸切换后会导致Activity的进行重启,主要原因还是如下:
android12新增加特殊,增加了monet的功能:
Android 12基于壁纸的主题设置工具“Monet”,将带来的全新主题设置工具可以从壁纸中选择颜色,并根据选择的颜色调整整个系统的配色,包括快捷设置、通知,还有设置菜单中的按钮和滑条等,这个新工具的代号为“Monet”.
上面既可以看出,实际上壁纸切换后导致Activity重启其实属于一个功能,因为壁纸切换后会导致主题颜色等有变化,这样各个Activity相关的控件view等需要跟随壁纸颜色风格走