Как сразу остановить задачу, запланированную в классе Java.util.Timer

Я все перепробовал. Это тоже Как остановить задачу, запланированную в классе Java.util.Timer

У меня есть одна задача, которая реализует java.util.TimerTask

Я вызываю эту задачу двумя способами:

  1. Я планирую Таймер вот так:

    timer.schedule (timerTask, 60 * 1000);

  2. иногда мне нужно, чтобы эта работа началась немедленно, и он должен отменить timerTask, если есть какие-то работающие

    cancelCurrentWork (); timer.schedule (timerTask, 0);

Эта реализация не останавливает текущую работу: (в документации говорится: если задача выполняется, когда происходит этот вызов, задача будет выполнена до завершения, но никогда больше не будет запускаться)

Но мне нужно, чтобы она остановилась.

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

Эта реализация просто отменяет таймер, но оставляет текущее выполнение задача, которая должна быть завершена.

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

Есть ли способ в таймере ОСТАНОВИТЬ текущее выполнение тактов, что-то вроде Thread.kill () или что-то в этом роде? Когда мне нужно остановить эту задачу, я хочу, чтобы она потеряла все свои данные.

5
задан Community 23 May 2017 в 10:27
поделиться