2016-03-18 1 views
1

J'essaie de planifier un événement. Par exemple, j'aimerais que quelque chose se passe dans 1 heure à partir de maintenant. Pour cela j'ai utilisé handler postdelayed. Malheureusement, cela ne fonctionne pas comme prévu. Je suppose que la raison est que Android met mon application à un état de veille, de sorte que la minuterie se bloque à un certain point, et continue de compter à partir du point arrêté lorsque l'appareil est de nouveau à utiliser. Cela provoque l'événement à se produire à un moment inconnu, supérieur au temps prévu.Écouter l'événement réveiller l'événement/planifier un événement de réveil

Maintenant, j'ai deux façons de résoudre cela et je voudrais savoir comment mettre en œuvre chacun:

  1. Horaire pour réveiller l'appareil à un moment précis et Excecute l'événement. Je ne sais pas comment programmer un réveil (et le faire efficacement).
  2. Exécuter l'événement dès que mon application se réveille, si l'heure de l'exécution est passée (je peux utiliser la date et l'heure pour vérifier si le temps a passé). Ce qui me manque ici, c'est comment écouter l'événement de réveil.

Et pour mes connaissances générales sur la politique de sommeil Android: android mettre les services et les activités pour dormir automatiquement? comment, si oui, toute application de messagerie continue d'écouter de nouveaux messages?

Merci à l'avance pour toute aide :)

Répondre

0

Vous devez utiliser Alarms, Alarmes vous donnent un moyen d'effectuer des opérations basées sur le temps en dehors de la durée de vie de votre application.

android a 4 types d'alarmes:

  1. ELAPSED_REALTIME—Fires: l'intention en attente en fonction de la quantité de temps écoulé depuis l'appareil a été démarré, mais ne se réveille pas l'appareil. Le temps écoulé comprend toute période pendant laquelle l'appareil était endormi.
  2. ELAPSED_REALTIME_WAKEUP—Wakes: augmente le périphérique et déclenche l'intention en attente après que la durée spécifiée s'est écoulée depuis le démarrage du périphérique. -Fires: l'intention en attente à l'heure spécifiée mais ne réveille pas le périphérique.
  3. RTC_WAKEUP—Wakes: l'appareil pour déclencher l'intention en attente à l'heure spécifiée.

Lire ces pages Alarms