防止语言环境更改后的应用语言更改
我的应用支持3种语言,用户可以在这些选项之间进行选择。 当我将设备语言环境更改为支持的其中一种语言时,UI语言会自动更改,问题是如果用户已在应用程序中选择了我支持的3种语言之一,我不希望它更改。防止语言环境更改后的应用语言更改
如何防止这种自动语言更改?
当用户在应用程序中选择它时,将语言环境保存到SharedPreference。并添加您的代码默认支持的语言环境。
String userLocale = App.getSharedPreferences().getString(SELECTED_LOCALE,"your_default_string");
在你Application.class onCreate方法添加此块:如果用户改变了语言
Locale locale = new Locale(userLocale) //
Resources resources = getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(locale);
谢谢,我的意思是我的区域设置的场景,然后用户最小化我的应用程序并更改设备区域并恢复我的应用程序 – Sharas
@Sharas将此添加到onConfigurationChanged()您的活动 –
我所做的是对我的喜好更新标志指示,并检查其对活动的onResume()
值如果它重新启动它。
活动的onCreate()
我将语言更新为存储的首选项。
你不应该。使用手机的语言环境,没有很好的理由来覆盖它。 –