私のアプリのユーザーは、アプリの設定ページからアプリ言語を変更できるので、Resources.updateConfiguration()とContext.createConfigurationContext()(非推奨版)で開発しました。しかし、ほとんどの開発者はLocale.setDefault()
で使用しましたが、なぜわかりません。私のアプリはLocale.setDefault()
なしで多言語をサポートすることができます。私はdocumentを読むが、それはあまりにも危険なようだ。 JVMのロケールをシステム設定やその他のアプリケーションで安全に変更していますか? JVMロケールの変更点Resource.updateConfiguration()
とContext.createConfigurationContext()
を使用すれば十分だと思いますが、なぜ開発者がLocale.setDefault()
メソッドを使用するのですか?私は「安全」は私の知る限りは、Androidはすべてのための新しいJVMインスタンスを起動知っているようLocale.setDefault()は安全ですか?
「を他のアプリには影響しない」を意味していることを前提と
「危険」とは何ですか?ロケールは最初にユーザーインターフェイス用に使用され、2番目に数字、日付などの書式設定に使用されます。何が悪いことが起こりますか? –
SetDefaultは、基本的にはアプリケーション言語をデバイスの言語に設定することです。そのためには、デバイスが実行中の言語にアクセスするためのアクセス権をアプリケーションに与える必要があります。 – Ricardo
私はこれに同意しない。彼女は、設定のロケールをLocale.getDefault()に設定した場合に何が起こるかを尋ねていません。彼女は、Locale.setDefault(Locale)を使ってJVMのデフォルト設定を行うことに興味を持っています。 –