2009-09-14 90 views

回答

1

如果你从一个已经结束的方法开始它(并且没有在任何地方引用它,例如在一个仍然活着的对象的成员变量中),它将被垃圾收集器清理。

除非任务保持对大量内存的引用,否则不需要将其设置为null。

如果你确实需要去引用任务,你应该在它的run()方法结尾添加一个调用,以便从你引用它的任何地方放弃它。

+0

好的,我需要间隔运行这个任务,但我发现我可以设置任务使用公共无效的时间表(TimerTask任务,长时间延迟,长周期)间隔自动运行 – newbie 2009-09-14 11:55:25

+0

我以为你在使用'schedule'整个时间,这就是为什么我建议你阅读'定时器'来源。 – 2009-09-14 15:50:16

0

什么都没有。您可以查看Timer课程的源代码,以了解安排TimerTask时真正发生的情况。

+0

如何在执行后将其设置为空? – newbie 2009-09-14 11:26:05

+0

不用担心,GC不再需要时会释放它占用的资源。 – 2009-09-14 11:28:47