As already mentioned, you can cancel the TimerTask that was sent to the timer instead of canceling the timer, so you no longer need to create new timers.
What are you doing:
timer.cancel();
timer.schedule(...);
IllegalStateExceptions, .
, , : timer.cancel()
TimerTasks TimerTask Timer. , , , , . . , , .
java.util.Timer. , - TimerTasks ? ! , TimerTasks ? TimerTasks . ScheduledThreadPoolExecutor. , java.util.Timer Java.