Как переключить приложение между темным и светлым режимами в зависимости от времени суток?

#java #android

#java #Android

Вопрос:

По-видимому, вы можете использовать это:

 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_TIME);
  

Но MODE_NIGHT_AUTO_TIME обесценивается.

Автоматическое переключение темного / светлого на основе текущего времени устарело. Рассматриваю возможность использования явной настройки или MODE_NIGHT_AUTO_BATTERY.

По какой возможной причине такая удивительная функция может быть обесценена? И о какой альтернативной «явной настройке» они говорят?

Ответ №1:

Если вы следуете рекомендациям по поддержке темного режима, вам не нужно беспокоиться о том, будет ли / когда его темный / светлый режим.

Пользователь может настраивать расписания, если / когда устройство переключается между режимами, а затем темы приложений будут соответствующим образом адаптироваться, поэтому в этом больше нет необходимости

Комментарии:

1. Разве это не применимо только к Android 10?

2. автоматическое переключение тем в зависимости от режима? да, вы можете окружить этот вызов проверкой версии на наличие более старых версий, если вам нужно

3. Я хочу, чтобы тема была применима независимо от версии Android

4. в старых версиях нет такого понятия, как темный режим, вам придется вручную создавать светлую и темную тему, а затем вручную переключаться между ними во всех ваших действиях с помощью настроек приложения или чего-то еще

Ответ №2:

Я думаю, лучше следовать системным настройкам. Если система использует темный режим, ваше приложение автоматически переключится в темный режим, поскольку большинство устройств поддерживают запланированный темный режим. Если вы хотите, чтобы ваше приложение переключалось со временем, я думаю, вам нужно сделать это вручную, например, проверить время перед инициализацией ваших представлений и решить, использовать ли темный режим или светлый режим.

Комментарии:

1. Да, но системный темный режим доступен только на устройствах Android 10. Я хочу, чтобы оно было доступно на всех устройствах.