manu001 Posted February 14, 2013 Share Posted February 14, 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 Link to comment Share on other sites More sharing options...
chpil Posted February 15, 2013 Share Posted February 15, 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.