Comment faire pour utiliser la Notification.deleteIntent
Je suis en train d'essayer de détecter le moment où ma notification est effacée. Ma question renvoie directement à ce réponse qui décrit ce que je suis supposé faire. Voilà comment je me suis mise en œuvre des actions:
//usual Notification initialization here
notification.deleteIntent = PendingIntent.getService(context, 0, new Intent(context, CleanUpIntent.class), 0);
notificationManager.notify(123, notification)
C'est le CleanUpIntent classe:
class CleanUpIntent extends IntentService {
public CleanUpIntent() {
super("CleanUpIntent");
}
@Override
protected void onHandleIntent(Intent arg0) {
//clean up code
}
}
Par la suite, il me suffit de lancer la notification comme je le feriez normalement, mais quand je vais faire un test (en appuyant sur la touche "Effacer Toutes les Notifications") rien ne se passe. J'ai inséré une ligne de code à imprimer quelque chose à LogCat lorsque le IntentService est commencé, mais rien n'a jamais couru. Est-ce que je suis supposé utiliser de Notification.deleteIntent?
OriginalL'auteur Brian | 2011-09-19
Vous devez vous connecter pour publier un commentaire.
Ce que vous devez faire est de vous inscrire à un
BroadcastReceiver
(probablement dans votre AndroidManifest.xml ou, alternativement, à l'aide deregisterReceiver
dans unService
) et ensuite définirdeleteIntent
être unIntent
qui sera détecté par le récepteur.Ce n'est pas un
IntentFilter
drapeau, c'est unBroadcastReceiver
: voir code.google.com/p/islamictools/source/browse/trunk/IslamicTools/... pour un exemple de la façon dont vous voulez faire cela.Je ne suis pas trop familier avec BroadcastReceivers, mais ma question portait sur la façon dont je m'inscrire au récepteur. N'avez-vous pas besoin de fournir un IntentFilter si oui ou non vous appeler Contexte.registerReceiver ou mettre manuellement dans le AndroidManifest?
Vous n'. Cependant, si vous vous inscrivez le récepteur dans AndroidManifest.xml vous pouvez utiliser
new Intent(context, {ReceiverClassName}.class)
pour envoyer unIntent
à laBroadcastReceiver
sans avoir à configurer un explicite IntentFilter dans le AndroidManifest.xml fichier. Si vous utilisezregisterReceiver
alors vous avez besoin de créer un IntentFilterMerci pour la clarification, tout fonctionne maintenant!
OriginalL'auteur Femi
exemple de code qui sera appelé à chaque fois que l'utilisateur efface la notification, espérons que cela va vous aider .
NotificationBroadcastReceiver.java
AndroidManifiest.xml
action
equallityUne application peut avoir différentes notifications générées avec le même récepteur ou différentes actions souhaitées en fonction de notification de contenu ou de certaines autres conditions. Dans ces cas, on peut vouloir définir une action.
Sachez que ce code de réutiliser le PendingIntent pour toutes les notifications de cette façon. Lire sa description sur la génération de uniques en utilisant différents demander des codes ou des différentes données vérifiées par l'Intention.isEqual().
OriginalL'auteur Pawan Maheshwari
Vous devez utiliser getBroadcast methode plutôt la méthode getService et doit s'inscrire récepteur d'Action spécifique.
OriginalL'auteur Pankaj
Explicite récepteur n'est pas nécessaire. deleteIntent sera appelé automatiquement tout en appuyant sur la clair bouton.
OriginalL'auteur basha