Что происходит в момент перехода устройства в ночной режим?

Я реализовал тему 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;
    }
}

0 ответов

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