防止语言环境更改后的应用语言更改

问题描述:

我的应用支持3种语言,用户可以在这些选项之间进行选择。 当我将设备语言环境更改为支持的其中一种语言时,UI语言会自动更改,问题是如果用户已在应用程序中选择了我支持的3种语言之一,我不希望它更改。防止语言环境更改后的应用语言更改

如何防止这种自动语言更改?

+0

你不应该。使用手机的语言环境,没有很好的理由来覆盖它。 –

当用户在应用程序中选择它时,将语言环境保存到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); 
+0

谢谢,我的意思是我的区域设置的场景,然后用户最小化我的应用程序并更改设备区域并恢复我的应用程序 – Sharas

+0

@Sharas将此添加到onConfigurationChanged()您的活动 –

我所做的是对我的喜好更新标志指示,并检查其对活动的onResume()值如果它重新启动它。

活动的onCreate()我将语言更新为存储的首选项。