Что происходит в момент перехода устройства в ночной режим?
Я реализовал тему DayNight с AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_XXX)
методы.
Тем не менее, во время тестирования я заметил, что изменение часов вручную в настройках вызывает изменение темы при возврате в приложение в фоновом режиме, даже если нет SetTheme()
называется в onCreate()
или же onResume()
,
Что происходит в тот момент, когда день превращается в ночь в устройстве, когда пользователь использует приложение, т.е. вводит большой объем данных? это возобновит деятельность? Что еще я должен проверить, чтобы проверить новый автоматический режим?
SettingRepository:
public void setThemeMode()
{
String mode = mSharedPreferences.getString(Constants.PREF_KEY_THEME_MODE, "Day") ;
switch (mode) {
case "Day":
AppCompatDelegate
.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
break;
case "Night":
AppCompatDelegate
.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
break;
case "Auto":
AppCompatDelegate
.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
break;
}
}
SettingsActivity:
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
switch (key) {
case Constants.PREF_KEY_THEME_MODE:
settingsRepository.setThemeMode();
rebootRequired = true;
break;
}
}