当我更改某些权限以拒绝 Android 中的设置时,应用程序重新启动并且语言发生了变化
App restarted and the language changed when I change some permission to deny from setting in Android
我正在开发一个具有两种语言(英语-阿拉伯语)的 Android 应用程序,我的应用程序是一个包含 Fragments
的 Activity
我正在正确处理跨应用程序的语言更改,但是伙计们,当应用程序语言为 Arabic
然后更改任何权限以拒绝设置并再次打开应用程序时,我的应用程序正在重新启动并且应用程序语言转换为 English
我已经在 Sharedpreferences
中保存了语言,语言正确保存为阿拉伯语并且应用程序在所有情况下都运行良好,但是当将权限从设置更改为拒绝时,所有字符串都转换为英语并查看说明改变。
我试图更改 onRestart()
中的本地,但它不起作用,那么有什么解决这个问题的建议吗?
如果有帮助,我正在根据从 sharedpreference
保存的值更改 Splash screen
中的语言
public void setLocal(String lang) {
Resources res = this.getResources();
Configuration conf = res.getConfiguration();
conf.locale = new Locale(lang);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
conf.setLayoutDirection(new Locale(lang));
}
res.updateConfiguration(conf, res.getDisplayMetrics());
Consts.first_lang_choose = true;
}
即使在应用程序重新启动时,您也需要检查是否正确保存了语言更改。
如果您从 android 设置中撤消权限,应用会重新启动是正常的。
I'm changing the language in Splash screen
您需要在所有活动中覆盖区域设置。 Android 框架可以终止您的活动(甚至您的应用程序),然后将其恢复到 activity 原来的位置,而不是通过您的入口点 activity,例如启动画面。
我正在开发一个具有两种语言(英语-阿拉伯语)的 Android 应用程序,我的应用程序是一个包含 Fragments
的 Activity
我正在正确处理跨应用程序的语言更改,但是伙计们,当应用程序语言为 Arabic
然后更改任何权限以拒绝设置并再次打开应用程序时,我的应用程序正在重新启动并且应用程序语言转换为 English
我已经在 Sharedpreferences
中保存了语言,语言正确保存为阿拉伯语并且应用程序在所有情况下都运行良好,但是当将权限从设置更改为拒绝时,所有字符串都转换为英语并查看说明改变。
我试图更改 onRestart()
中的本地,但它不起作用,那么有什么解决这个问题的建议吗?
如果有帮助,我正在根据从 sharedpreference
保存的值更改Splash screen
中的语言
public void setLocal(String lang) {
Resources res = this.getResources();
Configuration conf = res.getConfiguration();
conf.locale = new Locale(lang);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
conf.setLayoutDirection(new Locale(lang));
}
res.updateConfiguration(conf, res.getDisplayMetrics());
Consts.first_lang_choose = true;
}
即使在应用程序重新启动时,您也需要检查是否正确保存了语言更改。
如果您从 android 设置中撤消权限,应用会重新启动是正常的。
I'm changing the language in Splash screen
您需要在所有活动中覆盖区域设置。 Android 框架可以终止您的活动(甚至您的应用程序),然后将其恢复到 activity 原来的位置,而不是通过您的入口点 activity,例如启动画面。