在Android应用程序中,我试图在并发线程上同时使用不同的语言。一个线程是主UI线程,另一个是后台电子邮件进程,以各种语言向用户发送电子邮件。问题是,当我在一个线程上更改语言时,它会更改另一个线程上的语言,并且会出现语言泄漏问题。以下是用于更改语言以使用正确资源的方法:
public static Resources getResourcesByLocale(Locale locale,Context context){
Resources res = context.getResources();
AssetManager am = res.getAssets();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration mainConfig = res.getConfiguration();
Configuration config = new Configuration();
config.setTo(mainConfig);
config.locale = locale;
return new Resources(am, dm, config);
}
此方法更改系统范围的配置。因此,使用该配置的任何其他进程都将继承由语言环境确定的资源。有没有办法为每个区域设置使用多个配置?除了每次显示文本时都调用此方法,我已经详尽地寻找了解决方案。我们希望在欧洲和中东使用这个应用程序,大约27种语言。 任何帮助将不胜感激。