Я использую следующий код, чтобы установить повторяющуюся тревогу в Android для срабатывания каждые 12 часов утра, но он не получает срабатывания даже в один час.Мне нужно, чтобы этот сигнал тревоги сработал со следующего дня, 12:00, поэтому я добавил одну дату в объект календаря.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 00);
calendar.set(Calendar.MINUTE,00);
calendar.set(Calendar.SECOND,00);
calendar.add(Calendar.DATE,1);
Utils.printLog("date from repeating alarm "+calendar.getTime());
Intent startIntent = new Intent(context, RepeatingAlarmReceiver.class);
PendingIntent startPIntent = PendingIntent.getBroadcast(context, 15, startIntent, 0);
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (alarmMgr != null) {
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, startPIntent);
}
Я проверил по точке останова и обнаружил, что alarmMgr
не является нулевым при его установке.Также работает RepeatingAlarmReceiver.class
.