Comment arrêter immédiatement la tâche programmée en Java.util.Classe Timer

J'ai tout essayé. Trop Comment arrêter la tâche programmée en Java.util.Classe Timer

J'ai une tâche qui implémente java.util.TimerTask

J'appelle à ce que la tâche de 2 façons:

  1. Je programmateur comme ceci:

    de la minuterie.annexe(timerTask, 60 * 1000);

  2. parfois j'ai besoin de ce travail pour commencer immédiatement et il doit annuler timerTask si il y a tout qui fonctionne

    cancelCurrentWork();
    minuterie.annexe(timerTask, 0);

Cette mise en œuvre n'a pas d'arrêt de travail actuel:
(documentation dit: Si la tâche est en cours d'exécution lors de cet appel se produit, la tâche sera exécutée à la fin, mais ne sera jamais à court de nouveau)

Mais j'en ai besoin pour arrêter.

public static void cancelCurrentwork() {
 if (timerTask!= null) {
  timerTask.cancel();
 }
}

Cette mise en œuvre juste annule la minuterie, mais les feuilles en train de faire tâche d'être terminé.

public static void cancelCurrentwork() {
 if (timer!= null) {
  timer.cancel();
 }
}

Est-il un moyen de minuterie pour l'ARRÊT de l'exécution de mon travail, quelque chose comme Thread.kill() ou quelque chose? Quand j'ai besoin de cette tâche à arrêter, je veux perdre toutes ses données.

OriginalL'auteur vale4674 | 2010-10-29