Я работаю над приложением для оцифровки старых форм в моей компании. Каждая форма имеет много входных значений (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()
.
Кто-нибудь знает решение проблемы?