Если вы хотите, чтобы ваш код запускался в полночь, не используйте setInexactRepeating. На самом деле вам нужно: alarmManager.setRepeating(RTC_WAKEUP, ...)
, а затем использовать Calendar
для вычисления следующей полуночи, в которую вы хотите пробежать.
Если необходимость пробуждения в полночь зависит от активности пользователя, поэтому нет необходимости пробуждать телефон ровно в полночь, просто если сначала нужно запустить действие, если пользователь использует телефон после полуночи, вы можете изменить RTC_WAKEUP
до RTC
. Хотя эффект пробуждения от батареи ровно в полночь с RTC_WAKEUP
должен быть незначительным, так что, вероятно, проще просто вызвать пробуждение.