Приостановка / остановка и запуск / возобновление Java TimerTask постоянно?

У меня есть один простой вопрос относительно Java TimerTask. Как приостановить / возобновить две задачи TimerTask в зависимости от определенного условия? Например, у меня есть два таймера, которые работают между собой. Когда определенное условие выполнено в задаче первого таймера, первый таймер останавливается и запускает второй таймер, и то же самое происходит, когда определенное условие выполняется в задаче второго таймера. Класс ниже показывает именно то, что я имею в виду:

public class TimerTest {
    Timer timer1;
    Timer timer2;
    volatile boolean a = false;

    public TimerTest() {
        timer1 = new Timer();
        timer2 = new Timer();     
    }

    public void runStart() {
        timer1.scheduleAtFixedRate(new Task1(), 0, 1000);
    }

    class Task1 extends TimerTask {
        public void run() {
            System.out.println("Checking a");
            a = SomeClass.getSomeStaticValue();

            if (a) {
                // Pause/stop timer1, start/resume timer2 for 5 seconds
                timer2.schedule(new Task2(), 5000);
            }
        }
    }

    class Task2 extends TimerTask{
        public void run() {
            System.out.println("Checking a");
            a = SomeClass.getSomeStaticValue();

            if (!a) {
                // Pause/stop timer2, back to timer1
                timer1.scheduleAtFixedRate(new Task1(), 0, 1000);
            }

            // Do something...
        }
    }

    public static void main(String args[]) {
        TimerTest tt = new TimerTest();
        tt.runStart();      
    }
}

Итак, мой вопрос, как мне сделать паузуtimer1 во время бегаtimer2 и наоборот покаtimer2 бежит? Производительность и время - моя главная проблема, так как это должно быть реализовано в другом запущенном потоке. Кстати, я пытаюсь реализовать эти параллельные таймеры на Android.

Спасибо за вашу помощь!

Ответы на вопрос(7)

Ваш ответ на вопрос