2010-05-25 14 views
3

J'ai un service Android. Lorsqu'un téléphone démarre, un récepteur de diffusion reçoit une notification et il planifie le service de s'exécuter de manière répétée à un intervalle de X minutes. Désormais, toutes les X minutes, un autre récepteur de diffusion reçoit ces notifications et déconnecte le service, ce qui fait son travail et se ferme. Jusqu'ici tout va bien.Comment replanifier Alarm Manager sur préférences Modifier

Maintenant, je veux que ces minutes X soient configurables. J'ai un perf.xml similaire à ce qui est donné sur le lien ci-dessous. Ce fichier XML capture toutes mes préférences avec celle du minuteur de service. http://android-journey.blogspot.com/2010/01/for-almost-any-application-we-need-to.html

Maintenant, lorsque l'utilisateur change ses préférences; comment puis-je reporter l'alarme? Y a-t-il une manière que je peux placer un auditeur sur des changements de préférences? J'ai utilisé seulement les fichiers XML pour l'écran des préférences de speficy.

Toutes les idées seront les bienvenues.

Vive

Répondre

6

Il OnPreferenceChangeListener suffit de le mettre et le mettre en œuvre. Si je me souviens bien, vous avez choisi la préférence. Vous devez donc obtenir cette préférence findPreference ("myAlarmInterval"); puis définissez l'écouteur

Cela fonctionnera si votre service n'utilise pas la même préférence. Selon the developer docs il sera appelé lorsque - a été modifié par l'utilisateur - est sur le point d'être défini et/ou persisté. Par conséquent, la valeur d'une nouvelle préférence n'est pas encore disponible pour votre service.