manu001 Posté(e) 14 février 2013 Share Posté(e) 14 février 2013 Bonjour, J'ai besoin d'implémenter un gestionnaire d'alarme pour une application que je développe. Sachant que c'est la première je recontre certaines difficultés. J'ai regardé l'application "Open Alarm Clock" (https://play.google.com/store/apps/details?id=za.co.neilson.alarm) dont le développeur a publier le code source sur Github: https://github.com/SheldonNeilson/Android-Alarm-Clock Je n'arrive pas à comprendre comment les alarmes sont désactivées. Cette application est assez basique (mais fonctionnelle). On peut y définir certaines alarmes en activant ou désactivant celles que l'on désire. Alarm cancellation (or activation) is managed by function onstartCommand in za.co.neilson.alarm.service.AlarmService La désactivation d'une alarme est gérée par la fonction onstartCommand dans la classe za.co.neilson.alarm.service.AlarmService.java Voici le bout de code qui gère cette désactivation (dans le else): This is the piece of code that doing it (else condition): Context monContexte = getApplicationContext(); Intent myIntent = new Intent(getApplicationContext(), AlarmAlertBroadcastReciever.class); myIntent.putExtra("alarm", new Alarm()); PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, myIntent,PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager alarmManager = (AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE); alarmManager.cancel(pendingIntent); I can't understand, how Android knows which alarm to disable if you have several alarms. There is no id. The getApplicationContext gives the context of the global application, and Alarm object in extra is empty. Je n'arrive pas à comprendre comment Android sait quelle alarme est à désactivé si il y en a plusieurs. Il n'y a pas de gestion d'id à ce nivreau. la fonction getApplicationContext retour le contexte global de l'application. L'objet Alarm passé dans les extras est vide. C'est fou, je me tire les cheveux mais je n'arrive pas à comprendre. Je suis sur que l'explication est toute bête. Mais je dois l'être encore plus. Merci pour votre aide. Manu Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 15 février 2013 Share Posté(e) 15 février 2013 La désactivation d'une alarme se fait en fournissant à la méthode cancel un Intent (via le PendingIntent) identique à celui qui avait été fourni lors de l'enregistrement de l'alarme. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.