2017-03-16 189 views
0

我的應用程序用戶可以從應用程序的設置頁面更改應用程序語言,所以我使用Resources.updateConfiguration()Context.createConfigurationContext()(用於棄用)來開發它。但幾乎開發商與Locale.setDefault()使用,但我不知道爲什麼。 Locale.setDefault()我的應用程序可以支持多種語言。我讀了document,但它看起來太危險了。正在改變JVM的語言環境安全的系統設置或其他應用程序?什麼是改變JVM語言環境?我認爲使用Resource.updateConfiguration()Context.createConfigurationContext()就足夠了,但爲什麼開發人員使用Locale.setDefault()方法?Locale.setDefault()是否安全?

+0

什麼是「太危險」了?區域設置首先用於用戶界面,其次用於格式化數字,日期等。你期望發生什麼壞事? –

+0

SetDefault基本上是將應用程序語言設置爲設備的語言,爲此您需要爲應用程序授予訪問設備運行語言的權限。 – Ricardo

+0

我不同意這一點。她不問,如果將配置的語言環境設置爲Locale.getDefault(),會發生什麼情況。她對使用Locale.setDefault(Locale)設置JVM默認設置的結果感興趣。 –

回答

0

我認爲「安全」的意思是「不影響其他應用程序」

據我所知的android啓動一個新的JVM 例如爲每個APK開始/程序。因此Locale.setDefault()不應該影響其他的Android應用程序/應用程序。所以它應該是安全的

我已經完成了它here,並沒有看到其他應用程序的影響。

+0

感謝您的回答。我發現這個Android的文檔(https://developer.android.com/guide/components/fundamentals.html)。附加給像我這樣的其他開發者。 – Stella