У меня проблема со всеми сигналами, которые есть в моем приложении. Вся идея моего приложения зависит от срабатывания будильника в определенное время (если что-то пошло не так, пользователь заплатит деньги (кредиты)).
Вот одна из тревог, которые я написал, чтобы объяснить мою проблему:
@Override
protected void onCreate(Bundle savedInstanceState) {
sendNotification();
....
}
public void sendNotification() {
Calendar cal = Calendar.getInstance();
Calendar newDay = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 9);// 9 am
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
if (cal.getTimeInMillis() < newDay.getTimeInMillis())
cal.add(Calendar.DATE, 1);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(this, 0 , intent , 0 ) ;
// keep repeating the alarm every 5 mins
if(alarmManager != null ) {
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 300000 , pendingIntent1);
}
}
По сути, происходит то, что будильник не срабатывает с 9-ти точным, если я не открываю свое устройство с 9-ти, это может быть поздно на 10 минут, а иногда и больше!
Если я открывал устройство в 9 часов и получил уведомление, оно должно повторно отправить мне уведомление через 5 минут, и этого не происходит, если я открою приложение по истечении этого периода времени, я получу только уведомление .
Я продолжал искать решение в течение последней недели, и я не смог найти полезного ответа.