ScheduledExecutorService
будет работать, только если у вас есть какой-либо компонент, например Service
, работающий постоянно.Следовательно, его следует использовать только в тех случаях, когда компонент будет находиться в памяти по другим причинам, добавляя ценность для пользователя.Наличие компонента в памяти, предназначенного исключительно для наблюдения за временем, является расточительным, и одна из причин, по которой пользователи атакуют разработчиков с помощью средств убийц задач и т. Д.
AlarmManager
, является системной службой, предоставляемой операционной системой.Он может запустить компонент, когда время приближается.Следовательно, вам не нужно запускать компонент.
В моем случае мне нужно запускать немного кода для проверки новых данных каждую ночь и создавать новые уведомления, если есть новыеданные.
Это четкий сценарий для AlarmManager
.