Для моего приложения я хотел бы включать будильник в полночь и периодически каждую следующую полночь для сброса некоторых переменных. Я попытался диспетчер сигнализации, чтобы добиться этого. Возможно ли, что будильник срабатывает в первый раз, когда он достигает полуночи, а не только в следующие ночи? Мой настоящий код работает, но не для того, чего я хочу достичь. Сейчас я установил время и повторил 60 секунд для тестирования.
В моих выходах журнала я получаю, например:
- 20.01.2020_14: 15: 00 Здесь я хочу АВАРИЙНЫЙ СИГНАЛ
- 20.01.2020_14 : 16: 00: ТРЕВОГА
- 20.01.2020_14: 17: 00: ТРЕВОГА
Таким образом, возможно, что сигнал тревоги сработал, в первый раз, когда он достигнет установить время? Или у кого-нибудь есть обходной путь или какие-либо советы или подсказки, как мне этого добиться?
Моя функция установки будильника
public void midnightAlarm() {
AlarmManager alarmMgr;
PendingIntent alarmIntent;
alarmMgr = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MidnightAlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 15);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60 , alarmIntent);
}
мой класс приемника:
public class MidnightAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
writeToFile("ALARM");
//reset my Variables
}
}