2011-03-24 5 views
2

J'espère créer une [autre] application de listes de tâches, avec la possibilité de définir des rappels pour chaque tâche. Les tâches seraient stockées dans une base de données SQLite, mais qu'en est-il des alarmes? Devraient-ils (ou peuvent-ils être) stockés dans la base de données aussi?Si une alarme est enregistrée (comme rappel) pour une tâche personnalisée, l'alarme serait-elle supprimée si la tâche est supprimée?

Si l'application est désinstallée, avec des tâches qui ont des rappels à l'avenir, ces alarmes vont-elles toujours se déclencher? La possibilité de modifier une date/heure existante d'un rappel est importante (et également de compenser l'alarme (comparable à une option de répétition sur un réveil) d'un montant spécifié par l'utilisateur, mais je suppose que je pourrais réinitialiser une nouvelle alarme).

Ma question concerne principalement le stockage (et la gestion) des alarmes, ou est-ce que je pense aux alarmes d'une manière incorrecte?

Merci

Répondre

4

Vous pouvez se le AlarmManager. Mais vous devez stocker vos alarmes locales dans DB pour un exemple, puis les enregistrer via AlarmManager afin que, à un moment donné, une intention puisse être déclenchée.

Vous pouvez voir le tutoriel this ou chercher "alarmmanager android example" dans google.

+0

Merci pour le lien. Je suppose que je stockerais le temps du calendrier en millisecondes dans la base de données pour stocker l'heure à laquelle une alarme est due. Mais dans le cas où l'utilisateur redémarre son téléphone, l'alarme sera perdue, afaik. Ma question initiale était probablement très mal libellée/formulée; c'était un deux -parter justifiant deux questions séparées. Le principal concernant la façon dont les alarmes sont stockées/maintenues: Lors du redémarrage d'un téléphone, existe-t-il un moyen d'enregistrer les alarmes stockées dans la base de données, en forçant une activité particulière dans mon application à ouvrir (même en arrière-plan) , pour réenregistrer toutes les alarmes. – ataulm

+1

en utilisant un récepteur de démarrage permettrait de résoudre ce problème, [http://groups.google.com/group/android-developers/browse_thread/thread/dc7b365e8d293708], [http://www.dev-articles.com/article/Android + Boot + Receiver-20001] – ataulm

+3

Vous pouvez stocker l'alarme dans votre DB comme date pour un exemple 2011-03-29 14:00:00 puis soustraire la date actuelle à cette date. De cette façon, vous obtiendrez les milisecondes et ensuite vous pouvez enregistrer l'intention via AlarmManager. L'alarme est perdue lorsque votre application est désinstallée ou que le téléphone redémarre. Par conséquent, vous devez enregistrer un récepteur de réception pour le démarrage, de sorte que le périphérique redémarre, votre récepteur se déclenche, vérifie la base de données et enregistre toutes les alarmes. – vendor

Questions connexes