Comment faire pour arrêter la Minuterie de l'android?
Je suis du développement d'une application qui envoie un message à un nombre spécifique dans une période de temps spécifique. Le problème est qu'il continue à envoyer ce message après cette période de temps. Comment puis-je arrêter la minuterie après que le temps spécifique, afin d'arrêter l'envoi de ce message?
- J'aimerais de l'aide si vous voulez montrer votre code qui utilise la minuterie.
- Ne comprends pas comment c'est une question hors-sujet! Il a obtenu 15 voix, 8 étoiles a également accepté de répondre a 45 ups!!
Vous devez vous connecter pour publier un commentaire.
à l'arrêt de la minuterie début:
et.. on doit appeler "waitTimer.purger()" pour la GC. Si vous n'utilisez pas la Minuterie de plus, "purger()" !! "purger()" supprime toutes annulé des tâches de la file d'attente des tâches.
Timer.purge()
parce quewaitTimer = null
marques de l'ensemble de la structure pour le GC, déjà. Le but depurge()
est de supprimer les tâches qui ont été annulées avecTimerTask.cancel()
.En java.util.timer on peut utiliser
.annuler()
à l'arrêt de la minuterie et effacer toutes les tâches en attente.countDownTimer.called();
est appelé.Nous pouvons programmer le minuteur pour faire le travail.Après la fin du temps, nous avons mis le message de ne pas envoyer.
C'est le code.
Ici la méthode que nous appelant est,
public void scheduleAtFixedRate (TimerTask de tâches, beaucoup de retard, longue période)
Ici,
tâche : la tâche à planifier
retard: durée (en millisecondes) avant la première exécution.
période: durée (en millisecondes) entre les exécutions suivantes.
Pour plus d'informations vous pouvez consulter:
Développeur Android
Vous pouvez arrêter le chronomètre en appelant,
J'ai eu un problème similaire: à chaque fois que j'appuie sur un bouton particulier, j'ai créer une nouvelle Minuterie.
Quitter à partir de cette activité, j'ai supprimé la minuterie:
Mais ce n'était pas suffisant, car la
cancel()
méthode seulement annulé la dernière de la Minuterie. Les plus âgés ont ignoré un n'a pas arrêter de courir. Lepurge()
méthode n'était pas utile pour moi.J'ai résolu le problème simplement en vérifiant la
Timer
instanciation:Il dit de la minuterie() n'est pas disponible sur android? Vous pouvez trouver cet article utile.
http://developer.android.com/resources/articles/timed-ui-updates.html
J'ai eu tort. Timer() est disponible. Il semble que vous la mise en œuvre de la façon que c'est un coup de l'opération:
Ou de l'annuler après la première exécution:
http://developer.android.com/reference/java/util/Timer.html
J'ai eu un problème similaire et il a été causé par la position de la Minuterie d'initialisation.
Il a été placé dans une méthode qui a été invoquée le plus souvent.
Essayez ceci:
Le bouton "annuler()" méthode de seulement annulé la dernière de la Minuterie. Les plus âgés ont ignoré un n'a pas arrêter de courir.