2017-03-16 22 views
0

私のアプリのユーザーは、アプリの設定ページからアプリ言語を変更できるので、Resources.updateConfiguration()Context.createConfigurationContext()(非推奨版)で開発しました。しかし、ほとんどの開発者はLocale.setDefault()で使用しましたが、なぜわかりません。私のアプリはLocale.setDefault()なしで多言語をサポートすることができます。私はdocumentを読むが、それはあまりにも危険なようだ。 JVMのロケールをシステム設定やその他のアプリケーションで安全に変更していますか? JVMロケールの変更点Resource.updateConfiguration()Context.createConfigurationContext()を使用すれば十分だと思いますが、なぜ開発者がLocale.setDefault()メソッドを使用するのですか?私は「安全」は私の知る限りは、Androidはすべてのための新しいJVMインスタンスを起動知っているようLocale.setDefault()は安全ですか?

「を他のアプリには影響しない」を意味していることを前提と

+0

「危険」とは何ですか?ロケールは最初にユーザーインターフェイス用に使用され、2番目に数字、日付などの書式設定に使用されます。何が悪いことが起こりますか? –

+0

SetDefaultは、基本的にはアプリケーション言語をデバイスの言語に設定することです。そのためには、デバイスが実行中の言語にアクセスするためのアクセス権をアプリケーションに与える必要があります。 – Ricardo

+0

私はこれに同意しない。彼女は、設定のロケールをLocale.getDefault()に設定した場合に何が起こるかを尋ねていません。彼女は、Locale.setDefault(Locale)を使ってJVMのデフォルト設定を行うことに興味を持っています。 –

答えて

0

は/アプリのapk始めました。したがって、Locale.setDefault()は他のアンドロイドAPK /アプリに影響を与えるべきではありません。だからそれは安全でなければならない

私はそれをhereにして他のアプリには何の影響も見ませんでした。

+0

ありがとうございます。このAndroidのドキュメント(https://developer.android.com/guide/components/fundamentals.html)が見つかりました。私のような他の開発者にアタッチする。 – Stella

関連する問題