Как установить точные, повторяющиеся сигналы тревоги в Android 4.4?

Прямо сейчас я настраиваю такие сигналы следующим образом:

AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); timedate = cal.getTime(); //convert date to milis long timeInMilis = (timedate.getTime()); //Set Alarm to Repeat manager.setRepeating(AlarmManager.RTC_WAKEUP, timeInMilis, interval, pendingIntent); 

К сожалению, запланированные времена для повторения неточны, и я читал, что они могут быть неточными в течение полного интервала!

Поэтому я хотел бы переключиться на точный повторный сигнал тревоги. Для моего устройства требуется минимум только последний API 19 / Android 4.4, поэтому я не могу использовать setRepeating.

Что я могу сделать вместо того, чтобы установить точную повторяющуюся тревогу?

Solutions Collecting From Web of "Как установить точные, повторяющиеся сигналы тревоги в Android 4.4?"

К сожалению, запланированные времена для повторения неточны, и я читал, что они могут быть неточными в течение полного интервала!

Если ваш targetSdkVersion равен 19 или выше, да.

Что я могу сделать вместо того, чтобы установить точную повторяющуюся тревогу?

Используйте setExact() чтобы получить контроль за начальной задержкой. Затем, как часть вашей работы для обработки этого события, используйте setExact() чтобы получить контроль в следующее необходимое время. IOW, вы сами выполняете «повторяющуюся» часть.

Да, это раздражает.

Это намеренно раздражает, чтобы заставить разработчиков не использовать точные повторяющиеся сигналы тревоги, поскольку они хуже для батареи, чем их неточные братья. Если пользователь будет воспринимать неточное поведение и не будет его ценить, не стесняйтесь использовать setExact() чтобы сделать тревоги, когда пользователь хочет. Однако, если пользователь не будет воспринимать неточное поведение, используйте неточные сигналы, так как пользователь может заметить воздействие батареи на ваши точные сигналы.