Приложение в конечном итоге применяя тему дважды , что приводит к перезагрузке или протеканию (как настолько покраснешено или показано на вершине). Логика приложения:
Код: Выделить всё
when (response.displayMode) {
"light" -> {
setTheme(AppCompatDelegate.MODE_NIGHT_NO)
sharedPreferences.edit().putInt("theme_mode", AppCompatDelegate.MODE_NIGHT_NO).apply()
viewModel.setLightTheme(true)
}
"dark" -> {
setTheme(AppCompatDelegate.MODE_NIGHT_YES)
sharedPreferences.edit().putInt("theme_mode", AppCompatDelegate.MODE_NIGHT_YES).apply()
viewModel.setDarkTheme(true)
}
"auto" -> {
setTheme(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
sharedPreferences.edit().putInt("theme_mode", AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM).apply()
viewModel.setAutoTheme(true)
}
}
private fun setTheme(mode: Int) {
AppCompatDelegate.setDefaultNightMode(mode)
}
Я также пробовал настройку Android: Saunchmode = "SingleNstance" и Single Опять же.
Вопросы:
- Как я могу помешать применению темы дважды или повторно повторно инициализации пользовательского интерфейса? Предпочтения?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ttings-hav