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 языков. Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам