AlarmManager löst Alarme zur falschen Zeit aus

Ich habe alles in Ordnung gebracht, um einen Benachrichtigungsdienst zu erstellen, mit dem eine Benachrichtigung aufgrund eines Alarms ausgelöst wird. Leider funktioniert das Einstellen des Alarms mit AlarmManager nicht richtig. Es wird einige Minuten später ausgelöst (nicht genau Stunden, was auf ein Zeitzonenproblem hindeutet). Der wiederkehrende Zeitraum beträgt 1 Woche, daher habe ich die Konstante INTERVAL_DAY verwendet und mit 7 multipliziert. Um sicherzustellen, dass ein PendingIntent den anderen nicht ersetzt, übergebe ich PendingIntent.getService () das dayOfWeek als zweiten Parameter. Ich überprüfe die Richtigkeit der Zeit, zu der der Alarm ausgelöst wird, indem ich sie aufzeichne:

Log.d(TAG, "next alarm " + df.format(cal.getTime()));

Gibt es wirklich keine Möglichkeit, alle eingestellten Alarme aufzulisten - zumindest die aus meiner eigenen App? Ich glaube, dies ist der einzige Weg, um den Fehler aufzuspüren.

Mein Code:

cal.setTimeInMillis(System.currentTimeMillis());
cal.add(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
Log.d(TAG, "next alarm " + df.format(cal.getTime()));
Intent showNotificationIntent = new Intent(context, NotificationService.class);
dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
alarmIntent = PendingIntent.getService(context, dayOfWeek, showNotificationIntent, 0);
getAlarmManager(context).setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
    INTERVAL_WEEK, alarmIntent);

Ich möchte anbieten, jeden Tag einen Alarm zu haben, aber zu verschiedenen Zeiten, die vom Benutzer eingestellt werden können. Ich benutze also bis zu 7 Alarme, die wöchentlich ausgelöst werden sollen.

Selbst nachdem ich die zahlreichen Antworten auf ähnliche Fragen gelesen habe (ich beabsichtige nicht, eine doppelte Frage zu erstellen), konnte ich das Problem nicht finden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage