2016-03-12 6 views
7

Sto creando un'app per Android e vorrei cancellare tutte le notifiche che hanno un determinato tag.È possibile cancellare tutte le notifiche che hanno un determinato tag?

Al momento sembra possibile solo cancellare le notifiche dal loro id (int id) o da entrambi i loro id e tag.

mNotificationManager.cancel (int id);

o

mNotificationManager.cancel (tag stringa, int id);

Desidero poter annullare tutte le notifiche del tag String indipendentemente dall'ID int.

È possibile?

risposta

5

No, non lo è. Il modo in cui è impostata la notifica, id è la chiave primaria. Puoi aggiungere una sottochiave con tag e cancellare una coppia (tag, id) individuale in questo modo, ma non puoi annullare in base al solo tag. In realtà non sono sicuro del motivo per cui hanno aggiunto un parametro tag, in quanto sembra piuttosto ridondante, tranne che probabilmente un parametro stringa rende più facile il debug.

+6

I tag sono molto utili quando si sviluppa un'applicazione con più componenti tramite notifiche. Se imposti un tag per ciascun componente, non devi preoccuparti dell'unicità degli ID nel contesto di tutti i componenti. Devono essere unici localmente. – Nedko

+0

@Nedko su quali componenti stai parlando? e puoi darmi un esempio di codice di 'tag' usare? – UnKnown

+0

@Gabe come 'tag' potrebbe essere utile per scopi di debugging? – UnKnown

1

Su Android API> = 23 è possibile eseguire alcune operazioni di questo tipo per rimuovere un gruppo di notifiche. per (StatusBarNotification statusBarNotification: mNotificationManager.getActiveNotifications()) { if (KEY_MESSAGE_GROUP.equals (statusBarNotification.getGroupKey())) { mNotificationManager.cancel (statusBarNotification.getId()); } }

1

Sembra possibile se si utilizzano gruppi di notifica. Annullare la notifica di riepilogo di gruppo sembra annullare l'intero gruppo.

Problemi correlati