Вопрос

Что происходит с классом, расширяющим TimerTask, после выполнения его метода run?Значение myTask равно нулю или что после выполнения?

MyTask myTask = new MyTask();
Это было полезно?

Решение

Если вы запустили его из метода, который с тех пор завершился (и нигде не ссылались на него, например, в переменной-члене объекта, который еще жив), он будет очищен сборщиком мусора.

Нет необходимости устанавливать его в null, если только Задание не хранит ссылки на огромные объемы памяти.

Если вам действительно нужно отменить ссылку на задачу, вы должны добавить вызов в конце метода run (), чтобы отменить его, откуда бы вы ни ссылались.

Другие советы

Ничего.Вы можете проверить исходный код Timer класс, чтобы понять, что на самом деле происходит под капотом, когда TimerTask запланировано.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top