Android AlarmManager: est-il un moyen d'annuler TOUTES les alarmes?
Je fais construire une application de l'ensemble 2 alarmes pour chaque jour de la semaine (à une certaine heure et minute), les alarmes de répéter semaine après semaine, pour toujours.
Maintenant, le point est: si l'utilisateur modifie les alarmes, j'ai besoin d'annuler précédemment définir des alarmes.
Est-il un moyen d'annuler purement et simplement toutes les alarmes par mon application ?
OriginalL'auteur Lisa Anne | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pourriez obtenir un oeil sur : AlarmManager.Annuler
Et sur cette Question/Réponse: Android: Obtenir tous les PendingIntents ensemble avec AlarmManager
Comme indiqué dans là, vous ne pouvez pas demander à la AlarmManager vous dire ce que PendingIntent sont en elle. Mais je pense que vous pouvez faire quelques PendingIntent semblable à celui que vous souhaitez annuler ;).
OriginalL'auteur BigbangRevo
si vous êtes l'annulation précédente alarmes puis dans PendingIntent votre drapeau doit être PendingIntent.FLAG_CANCEL_CURRENT. Elle permettra d'éviter la génération d'une nouvelle PendingIntent si il est déjà créé. Et assurez-vous que avant de mettre dans l'alarme tout simplement annuler cette même PendingIntent et après que de régler votre réveil. Vous devriez essayer comme ceci:
et puis vous pouvez les utiliser ensemble ou setRepeating méthode.
Dans votre cas, il devrait être
Cela garantit que, avant une alarme va annuler toutes les déjà alarme avec le même PendingIntent.
Espère que vous avez compris ce!
bonjour, ce n'est pas dire beaucoup sur
requestCode
. Mais si vous voyezgetBroadcast
dans PendingIntent qui dit, il récupère unePendingIntent
. Donc selon mes connaissances si vous mettez des différentsrequestCode
s ensuite, vous aurez 2 différentsPendingIntent
s, donc lors de l'annulation, c'est l'autrePendingIntent
au lieu de votre choix! Aussi regarder ce lien.Merci de revenir vers moi. Permettez-moi de lire la documentation de nouveau. Je n'ai pas vu de toute façon à la demande de la liste des alarmes programmées par une classe. Une idée?
Je suis désolé, je n'ai pas compris :/
pour annuler l'alarme, vous devez recréer l'exacte
PendingIntent
, je suppose qu'il n'y a aucun moyen de le récupérer directement à partir du code. Vous pouvez toujours voir l'attente des alarmes dans la coquille! Si vous êtes familier avec la commande adb shell vous pouvez la réaliser avec des commandes:adb shell dumpsys alarm > log.txt
oùlog.txt
aura tous dans l'attente des alarmes avec les noms de paquets, de sorte que vous pouvez vérifier la vôtre. Je ne suis pas sûr de la façon de l'obtenir à partir du code.OriginalL'auteur imthegiga