Что происходит с TimerTask после выполнения?
-
07-07-2019 - |
Вопрос
Что происходит с классом, расширяющим TimerTask, после выполнения его метода run?Значение myTask равно нулю или что после выполнения?
MyTask myTask = new MyTask();
Решение
Если вы запустили его из метода, который с тех пор завершился (и нигде не ссылались на него, например, в переменной-члене объекта, который еще жив), он будет очищен сборщиком мусора.
Нет необходимости устанавливать его в null, если только Задание не хранит ссылки на огромные объемы памяти.
Если вам действительно нужно отменить ссылку на задачу, вы должны добавить вызов в конце метода run (), чтобы отменить его, откуда бы вы ни ссылались.
Другие советы
Ничего.Вы можете проверить исходный код Timer
класс, чтобы понять, что на самом деле происходит под капотом, когда TimerTask
запланировано.