Wenn meine Anwendung gestartet wird, führt sie einen API-Aufruf durch und plant dann Benachrichtigungen basierend auf den Ergebnissen. Dies entspricht ca. 10 geplanten Benachrichtigungen. Es scheint ein Problem mit dem Zeitstempel zu geben, der in der aktuellen Benachrichtigung angezeigt wird.Falscher Zeitstempel für zukünftige Benachrichtigungen
Da ich diese Benachrichtigungen erstelle und dann einen Alarm mit einer AlarmManager
einplane, ist die Standardzeit für die Benachrichtigung die Zeit, zu der die Benachrichtigung erstellt wird (System.currentTimeMillis()
).
Ich habe versucht, die .setWhen()
Methode auf meinem Notification.Builder
verwenden, um es auf die Zeit einzustellen, die ich verwende, um den zuvor erwähnten Alarm zu planen. Dies ist jedoch ein wenig besser, da Benachrichtigungen nicht garantiert zur angegebenen Zeit geliefert werden, bekomme ich oft Benachrichtigungen ein paar Minuten in der Vergangenheit.
Außerdem habe ich versucht, manuell über die Mitteilung der when
Feld in meinem BroadcastReceiver
außer Kraft zu setzen, kurz vor .notify()
tatsächlich aufgerufen wird:
public class NotificationPublisher extends BroadcastReceiver {
public static String NOTIFICATION_ID = "notification_id";
public static String NOTIFICATION = "notification";
public void onReceive(Context context, Intent intent) {
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = intent.getParcelableExtra(NOTIFICATION);
notification.when = System.currentTimeMillis();
int id = intent.getIntExtra(NOTIFICATION_ID, 0);
notificationManager.notify(id, notification);
}
}
jedoch in dem obigen Szenario, wie es scheint, dass .when
ignoriert.
Ehrlich gesagt, ich bin einfach auf der Suche nach einer Möglichkeit, den Zeitstempel auf der Benachrichtigung angezeigt werden, die Uhrzeit, zu der es tatsächlich angezeigt wird.
Dank helfen @sammy mir diesen einen lassen versuchen! – xbadal
Thanksyou sammy! funktionierte perfekt – xbadal
können Sie mir sagen, wie Sie mehrere Benachrichtigungen erstellen.? es kann getan werden, indem man mNotificationId bereitstellt? dann muss ich das selbe abbrechen! – xbadal