2011-02-14 16 views
6

Cuando tiene la Actividad de mensajes abierta y el teléfono recibe un nuevo mensaje, se muestra una notificación en la barra de estado. Después de un corto período de tiempo, se elimina la notificación.Notificación de borrado después de unos segundos

¿Es posible hacer lo mismo para mi actividad sin utilizar un temporizador para borrar la notificación después de unos segundos?

Respuesta

10

No creo que haya una manera de utilizar NotificationManager solo para cancelar una notificación, pero puede hacerlo con un Handler más simple. Ponga un código como este justo después de disparar su notificación.

Handler h = new Handler(); 
long delayInMilliseconds = 5000; 
h.postDelayed(new Runnable() { 
    public void run() { 
     mNotificationManager.cancel(YourNotificationId); 
    } 
}, delayInMilliseconds); 
+0

Fuera de interés ¿Por qué utilizar un controlador en lugar de un temporizador? – benshort

+1

No conozco el funcionamiento interno de las clases lo suficiente como para tener una razón real, es solo una cosa instintiva ya que necesita algo que se ejecute una vez. El temporizador se puede usar para ejecutarse una vez, pero también se puede usar para ejecutarlo repetidamente. Siempre pienso en Handler como algo que se ejecuta una vez cuando se lo dices, y ese era tu caso de uso, así que tenía sentido para mí. – Rich

Cuestiones relacionadas