Android context.getResources.updateConfiguration()已过时如何解决?

时间:2019-02-19 20:33:05

标签: java android locale deprecated

最近,context.getResources().updateConfiguration()在Android API 25中已被弃用,我需要更改用户选择的应用程序的语言。我正在使用这种方法来更改语言

  private void setLanguage(String language){
    Locale locale = new Locale(language);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    con.getApplicationContext().getResources().updateConfiguration(config, null);
    prefData.setCurrentLanguage(language);
    Intent intent = new Intent(getApplicationContext(),MainActivity.class);
    startActivity(intent);
    finish();

}

但是收到过时的api警告,我才刚刚开始android开发。因此,任何建议都将有助于解决此警告。

1 个答案:

答案 0 :(得分:1)

我在Resource源代码中找到了以下代码。

 /**
     * Store the newly updated configuration.
     *
     * @deprecated See {@link android.content.Context#createConfigurationContext(Configuration)}.
     */
    @Deprecated
    public void updateConfiguration(Configuration config, DisplayMetrics metrics) {
        updateConfiguration(config, metrics, null);
    }

该文档说您不建议使用Context.createConfigurationContext(Configuration)