Я работаю над приложением, основанным на программировании сигналов тревоги с помощью метода AlarmManager.setAlarmClock.В основном это работает, но в некоторых случаях сигналы тревоги генерируются в неправильное время.
Например, в устройстве Samsung с Android 5.1 я установил 3 сигнала тревоги в:
- 18:00
- 22: 00
- 6: 00 (на следующий день)
И результат будет
- 18: 00 ->ОК
- 18: 15 -> Брошено в 18: 15
- 6: 00 -> Брошено в 2:00 !!
Вот код для настройкиаларм:
if (Build.VERSION.SDK_INT >= 21) {
Log.d(TAG, "Final (idle) at " + sdf.format(calendarObj.getTime()));
AlarmManager.AlarmClockInfo info = new AlarmManager.AlarmClockInfo(calendarObj.getTimeInMillis(), pendingIntent);
alarmManager.setAlarmClock(info, pendingIntent);
}
И это код для генерации экземпляров «calendarObj» (объект iqDate - это объект с определенной датой, и три тревоги устанавливаются на основе даты этого объекта.Просто проигнорируйте это):
Calendar c1 = Calendar.getInstance();
c1.setTime(iqDate.getTime());
c1.add(Calendar.DAY_OF_MONTH, -1);
c1.set(Calendar.HOUR_OF_DAY, 18);
c1.set(Calendar.MINUTE, 0);
c1.set(Calendar.SECOND, 0);
Calendar c3 = Calendar.getInstance();
c3.setTime(iqDate.getTime());
c3.add(Calendar.DAY_OF_MONTH, -1);
c3.set(Calendar.HOUR_OF_DAY, 22);
c3.set(Calendar.MINUTE, 0);
c3.set(Calendar.SECOND, 0);
Calendar c7 = Calendar.getInstance();
c7.setTime(iqDate.getTime());
c7.set(Calendar.MINUTE, 0);
c7.set(Calendar.SECOND, 0);
c7.set(Calendar.HOUR_OF_DAY, 6);
Есть идеи, почему это происходит?Это работает в большинстве случаев, но иногда тревоги не работают должным образом ...
Спасибо!