Почему бы просто не создать новый Timer
в этот момент? Либо это, либо удерживайте TimerTask
, а также таймер, и отмените это вместо самого таймера.
В качестве третьей возможной альтернативы, имейте одну задачу таймера и один таймер, но информируйте задачу таймера о том, что она должна делать в любой момент - похоже, вы эффективно переключаете Вы хотите делать каждый раз, когда таймер тикает. Вы всегда можете оставить два отдельных класса для разделения логической функциональности, а затем выполнить задачу «обертка», которая позволяет заменить поведение, выполняемое при каждом запуске.