Как перезапустить представление без потери данных - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над приложением для оцифровки старых форм в моей компании. Каждая форма имеет много входных значений (RadioGroups, EditText, Checkboxes). Приложение нуждается в динамическом темном режиме c, ориентированном на восход и заход солнца. Поэтому, когда я работал с формой, она должна изменить тему приложения, если солнце уже зашло.

Служба локального вещания (запущена MainActivity) проверяет, находится ли фактическое время между заходом солнца и восходом солнца, и отправляет трансляция. Активность на переднем плане получает трансляцию и должна изменить тему на темную, но без потери входных значений.

Все, что я пробовал, не работает, потому что я действую в функции Receiver и устанавливаю ContentView в onCreate- Метод:

        setTheme(R.style.AppTheme_Dark)
        application.setTheme(R.style.AppTheme_Dark)
        theme.applyStyle(R.style.AppTheme_Dark, true)
        findViewById<View>(android.R.id.content).invalidate()

Очень важно, чтобы я не терял значения во входах, поэтому я не могу использовать startActivity(intent) & finish() и recreate().

Кто-нибудь знает решение проблемы?

...