2017-04-01 3 views
0

immer wenn ich versuche, die Benachrichtigung oder Absicht zu aktualisieren, wird stattdessen eine neue erstellt, die ich nicht will. Ich denke, das Problem ist, dass die Intents nicht identifiziert werden, wenn ich versuche, sie zu aktualisieren. Der Link zum Code ist unten:So aktualisieren und löschen Sie eine ausstehende Absicht und eine Benachrichtigung in android

https://gist.github.com/Kerron-Hutton/03799ac497128919225bbbd4efaffa25

+0

wo genau das Update in dem Code statt? oder vielmehr Ihr beabsichtigter Ort der Aktualisierung im Code? – Remario

+0

auch diese Zeile data.getID(), versuchen Sie debuggen und sehen, ob die ID ist die Sie wollen, ich meine diese ID ist der Schlüssel zum update – Remario

+0

auch die Art, wie Sie die ID übergeben, ist nicht wirklich empfehlenswert, erstellen Sie eine Konstanten Standalone-Klasse mit allen Benachrichtigungs-ID, dann basierend auf der Absicht nur anrufen. Diese Konstanten sind statisch endgültig – Remario

Antwort

1
  1. So aktualisieren Sie eine PendingIntent, sollten Sie die gleiche REQUEST_CODE, dass Sie, bevor es erstellen verwenden.

    PendingIntent pIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    
  2. Zum Abbrechen/Löschen eines bestehenden PendingIntent, Sie PendingIntent.cancel() Methode verwenden können.

    PendingIntent.getBroadcast(context, REQUEST_CODE, intent, 
            PendingIntent.FLAG_UPDATE_CURRENT).cancel(); 
    
  3. Um ein Notification, aktualisieren Sie NotificationManager.notify() Methode mit dem NOTIFICATION_ID verwenden können, die Sie aktualisieren möchten.

    NotificationManager notificationManager= (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);  
    notificationManager.notify(NOTIFICATION_ID, notification); 
    

    Mitteilung id sollte in Ihrer Anwendung eindeutig sein. Wenn eine Benachrichtigung mit demselben id bereits von Ihrer -Anwendung gepostet wurde und noch nicht storniert wurde, wird sie durch die aktualisierte Information ersetzt.

  4. abzubrechen/Entfernen eines vorhandenen Notification, verwenden NotificationManager.Cancel() -Methode mit dem NOTIFICATION_ID, den Sie abbrechen möchten.

    notificationManager.cancel(NOTIFICATION_ID); 
    

Hope this helfen ~

Verwandte Themen