2017-06-14 249 views
1

我的應用支持3種語言,用戶可以在這些選項之間進行選擇。 當我將設備語言環境更改爲支持的其中一種語言時,UI語言會自動更改,問題是如果用戶已在應用程序中選擇了我支持的3種語言之一,我不希望它更改。防止語言環境更改後的應用語言更改

如何防止這種自動語言更改?

+0

你不應該。使用手機的語言環境,沒有很好的理由來覆蓋它。 –

回答

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()您的活動 –

0

我所做的是對我的喜好更新標誌指示,並檢查其對活動的onResume()值如果它重新啓動它。

活動的onCreate()我將語言更新爲存儲的首選項。