要在Android 8.0中更改应用程序的语言,您需要在应用程序重新启动时更新所有活动资源。但是,如果应用程序在后台运行,这些活动资源可能无法更新。您可以通过在应用程序内部实现语言更改,然后手动重启应用程序来解决此问题。
以下是一个示例:
//设置应用程序的语言 private void setLocale(String lang) { Locale myLocale = new Locale(lang); Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfiguration(); conf.locale = myLocale; res.updateConfiguration(conf, dm); }
//重启应用程序 private void restartApp() { Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); finish(); }
当您调用setLocale()方法时,它将更新资源并修改应用程序的语言。然后,您可以调用restartApp()方法来重启应用程序并使所有活动资源生效。