2011-02-14 4 views
6

Lorsque l'activité Messages est ouverte et que le téléphone reçoit un nouveau message, une notification s'affiche dans la barre d'état. Après une courte période, la notification est supprimée.Annulation de la notification après quelques secondes

Est-il possible de faire la même chose pour mon activité sans utiliser une minuterie pour effacer la notification après quelques secondes?

Répondre

10

Je ne crois pas qu'il existe un moyen d'utiliser le NotificationManager seulement pour annuler une notification, mais vous pouvez le faire avec un gestionnaire plus simple. Mettez du code comme celui-ci juste après avoir déclenché votre notification.

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

D'intérêt Pourquoi utiliser un manipulateur plutôt qu'un temporisateur? – benshort

+1

Je ne connais pas assez le fonctionnement interne des classes pour avoir une vraie raison, c'est juste une chose instinctive puisque vous avez besoin de quelque chose qui fonctionne une fois. La minuterie peut être utilisée une seule fois, mais elle peut aussi être utilisée plusieurs fois. Je pense toujours que le Handler est quelque chose qui fonctionne une fois quand vous le dites, et c'est votre cas d'utilisation, donc ça a du sens pour moi. – Rich

Questions connexes