[Bug]:如果在 Application 里的attachBaseContext方法设置了setDefaultLanguage会导致竖屏 activity 跳转横屏 activity 的生命周期走两遍
框架版本【必填】
9.3
问题描述【必填】
如果在 Application 里的attachBaseContext方法设置了setDefaultLanguage会导致竖屏 activity 跳转横屏 activity 的生命周期走两遍。https://github.com/GGjin/LanguagesDemo 这是复现项目
复现步骤【必填】
attachBaseContext里设置默认语言,再竖屏 activity 跳转横屏 activity
是否必现【必填】
是
项目 targetSdkVersion【必填】
目前 34 33 都有问题
出现问题的手机信息【必填】
三星 小米 荣耀 都能复现
出现问题的安卓版本【必填】
14 13 都遇到了
问题信息的来源渠道【必填】
自己遇到的
是部分机型还是所有机型都会出现【必答】
所有机型
框架最新的版本是否存在这个问题【必答】
是
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是
是否可以通过 Demo 来复现该问题【必答】
是
提供报错堆栈
这个项目本地运行不起来,所以我创建了个 demo 项目,里面有复现的代码。
提供截图或视频
提供解决方案
No response
你在 demo 工程中把关于框架的代码去掉是否也会出现同样的问题?
我下载了你的 Demo 工程进行了测试,发现并没有出现你说的这个问题。
又测试了一下,Android13 和Android14 有问题,注释掉框架就正常。目前测试的机型有,小米 Android13,荣耀 Android14,三星 Android14。
又测试了一下,Android13 和Android14 有问题,注释掉框架就正常。目前测试的机型有,小米 Android13,荣耀 Android14,三星 Android14。
你好,请问解决了吗,我这也有这个问题,不设置默认语言就没问题
经过调试 注释掉这里就好了,这块 是做什么的呢
@GGjin 告诉系统当前应用的语种是什么
@GGjin 你给要跳转的目标 Activity 清单文件上面加上 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" 这个属性再试试,我测试加上之后就没有出现走两次生命周期的情况了。
清单文件里这么写的话 确实不会重建了,但是 也不管什么情况下 都不会重建了,这个感觉也不太好吧。 告诉系统当前应用的语种是什么,有什么作用呢,能告知一下吗,大佬。
你可以看一下 Android 13 的系统源码来了解。
大白话就是:当设备发生屏幕旋转、键盘状态变化、语言切换、字体大小变化、UI模式变化等所有常见配置变化时,请不要重启我的 Activity,我来处理