Ich arbeite an einer Erinnerung, die dem Benutzer eine Benachrichtigung zu einer bestimmten Zeit sendet.
Der Alarm geht sofort aus ...
Ich habe die meisten Vorschläge über stackoverflow
ausprobiert, habe aber immer noch das gleiche Problem
Bitte helfen Sie mir, dieses Problem zu lösen.
Serverdaten
%Vor%Mein Code
%Vor%Tage erhalten : Dies löst die Tag-Nummerierung
%Vor%Screenshot
Schließlich habe ich einen Weg gefunden, dies zu tun, indem ich PendingIntent requestCode
in der Datenbank (verwendetes ROOM) ablege und dann den gesamten Alarm lösche, indem ich alle requestCode
von DB
AlarmIdPojo
%Vor%AlarmIdDAO
%Vor%AppDatabase
%Vor%callReminder
%Vor%setReminderNotification
%Vor%insertToDB
%Vor%Das Hauptproblem scheint mit dieser Zeile zu sein:
%Vor%Was Sie wissen müssen, ist, dass Sie nur den Wochentag einstellen, der in der Ausgabe angezeigt wird. - Es ändert nicht das zugrunde liegende Datum, das Sie erwarten.
Verwenden Sie den folgenden Code, um Ihre Daten zu ändern, um für jeden ausgewählten Tag einen Alarm festzulegen:
%Vor%Ihr Alarm wird sofort ausgelöst, da Android alle in der Vergangenheit eingeplanten Alarme auslöst.
Einige Ihrer Alarme werden in der Vergangenheit geplant, weil der folgende Code nicht wie erwartet funktioniert. Beispielcode aus Ihrer Frage:
%Vor%Im obigen Code fügen Sie Ihrem Alarm nur einen Tag hinzu, wenn der Alarm in der Vergangenheit liegt. Nehmen wir an, Sie führen diesen Code am Freitag aus und Sie lesen einen Alarm für Montag. Ihr Code fügt einen Tag zu dem Datum hinzu, an dem er am Dienstag erscheint. Planen Sie diesen Alarm ein. Der Alarm liegt in der Vergangenheit, da der Dienstag noch vor Freitag liegt. Daher wird Android diesen Alarm kurz nach dem Termin auslösen.
Aus Ihrer Frage geht nicht klar, was Sie mit den Erinnerungen tun möchten, die in der Vergangenheit liegen. Eine mögliche Lösung ist, sie eine Woche in die Zukunft zu planen.
%Vor%Ich habe das gleiche Problem zuvor, bitte überprüfen Sie die folgenden Details:
Nicht funktionierendes Codebeispiel:
%Vor%Arbeitscode:
%Vor%Es wird nur ausgeführt, wenn Sie die Wiederholung festlegen, Sie müssen überprüfen, ob sie übergeben wurde oder nicht, und wenn sie übergeben wurde, fügen Sie einfach die gewünschte Zeit für die Wiederholung hinzu
Tags und Links android notifications alarmmanager