Я почти уверен, что в JDK нет ничего, что могло бы сделать это, и я не знаю ни одной библиотеки для этого.
Однако, я думаю, вместо того, чтобы пытаться сделать паузу и возобновить какой-то таймер, вы должны просто обернуть все, что зависит от периодического выполнения в состоянии, чтобы оно выполнялось только тогда, когда оно не приостановлено. Если скорость, с которой планируются задачи, достаточно высока, разница не должна быть заметна для пользователя. Например:
public abstract class PausableTask extends TimerTask {
private final AtomicBoolean isPaused;
public PausableTask(AtomicBoolean flag) {
isPaused = flag;
}
@Override public final void run() {
if (!isPaused.get()) go();
}
public abstract void go();
}
Тогда у вас может быть один глобальный флаг паузы, и каждый раз, когда вы используете TimerTasks, используйте этот класс, передавая глобальный флаг. Вы даже можете сделать флаг общедоступной статической переменной класса PausableTask.
Может быть, этот подход даже не применим к вашей игре, и у вас есть основания требовать более точной приостановки, но если нет, надеюсь, это поможет!