Android разные языки в параллельных потоках
В приложении для Android я пытаюсь использовать разные языки одновременно в параллельных потоках. Один поток является основным потоком пользовательского интерфейса, а другой - фоновым процессом электронной почты, отправляющим электронные письма пользователям на разных языках. Проблема в том, что когда я меняю язык в одном потоке, он меняет язык в другом потоке, и я получаю "утечки языка". Вот метод, используемый для изменения языка для использования правильных ресурсов:
public static Resources getResourcesByLocale (языковой стандарт локали, контекстный контекст) {
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 языков. Любая помощь приветствуется.