34

Qualcuno ha idea di come possiamo rimuovere la notifica dall'applicazione a livello di codice che viene chiamata utilizzando l'intento in sospeso.Come rimuovere la notifica dalla barra di notifica a livello di programmazione in Android?

Ho usato per annullare la notifica utilizzando il seguente metodo.

AlarmManager am=(AlarmManager)getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(Display.this, TwoAlarmService.class); 
PendingIntent pi = PendingIntent.getBroadcast(Display.this, AlarmNumber, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
am.cancel(pi); 

Ma il problema è la notifica che ha generato già che non vengono rimossi dalla barra di notifica.

Grazie in anticipo ...

enter image description here

+0

hi non so è possibile rimuovere la notifica programaticaly, ma è possibile ignorare il vecchio di notifica con il nuovo uno che è sicuro. se è completo il tuo requisito allora posso postare il codice per te qui. Risposta PLZ –

+0

No, in realtà ho due notifiche diverse e sto già cancellando la notifica. –

risposta

105

magari provare questo:

NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); 
notificationManager.cancel(NOTIFICATION_ID); 

O, si può anche fare questo per annullare tutte le notifiche in determinato contesto:

notificationManager.cancelAll(); 

Vedere questo link alla documentazione: NotificationManager

+0

Ha funzionato davvero !!! :) Grazie ... –

+4

Non vedo il punto di 'if (Context.NOTIFICATION_SERVICE! = Null)' perché è una costante String e non sarà mai nullo. – tar

+4

hai ragione questo test è inutile, non so perché l'ho fatto (cancellato): / –

0

Notifiche rimangono visibili finché una delle seguenti circostanze:

L'utente chiude la notifica sia individualmente sia utilizzando "Clear All" (se la notifica può essere cancellato). L'utente fa clic sulla notifica e hai chiamato setAutoCancel() quando hai creato la notifica. Si chiama cancel() per un ID di notifica specifico. Questo metodo elimina anche le notifiche in corso. Chiama cancelAll(), che rimuove tutte le notifiche che hai precedentemente rilasciato. Se si imposta un timeout durante la creazione di una notifica utilizzando setTimeoutAfter(), il sistema annulla la notifica al termine della durata specificata. Se necessario, è possibile annullare una notifica prima che la durata timeout specificato trascorra cancelNotification public void() {

String ns = NOTIFICATION_SERVICE; 
    NotificationManager nMgr = (NotificationManager) getActivity().getApplicationContext().getSystemService(ns); 
    nMgr.cancel(NOTIFICATION_ID); 
} 
Problemi correlati