Проблема в том, что вы устанавливаете alarmcal как Date, а не соответствующее длинное значение.Поскольку оба «часа» живы, ваша логика не удастся.Следующий фрагмент установит тревожное время на 10 секунд раньше текущего времени.Сравнение всегда будет с «живыми часами».
long alarmcal = new Date().getTime() + 10 * 1000; // add 10 seconds from current time
while (true) {
try {
Thread.sleep(2000);
System.out.println(alarmcal + " " + new Date().getTime());
if (alarmcal >= new Date().getTime()) {
System.out.println("This note has a reminder scheduled.");
} else {
System.out.println("Reminder date passed.");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Распечатка этого будет:
293484130625 1293484124628
Для этой заметки запланировано напоминание.
1293484130625 1293484126628
Для этой заметки запланировано напоминание.
1293484130625 1293484128628
Для этой заметки запланировано напоминание.
1293484130625 1293484130629
Дата напоминания пройдена.
1293484130625 1293484132629
Дата напоминания пройдена
1293484130625
Надеюсь, вы сможете перенести это на свой код Android