Android finalize()和System.exit()| System.gc()

时间:2013-09-29 11:58:33

标签: android garbage-collection system finalize

我有一个关于垃圾收集器和Object.finalize()的问题。我创建了一个实现finalize方法的类。如果我运行我的应用程序并在DDMS中强制GC,则在我的类的对象上调用,没有引用。但是,如果我在我的应用程序中调用System.gc(),则不会调用finalize。离开应用程序时调用System.exit(0)也不会导致最终确定。 为什么没有最终确定?

1 个答案:

答案 0 :(得分:1)

  

但如果我在我的应用程序中调用System.gc(),则不会调用finalize。

那是因为你的对象没有被垃圾收集。 gc()没有执行完整的 GC。相反,它会收集一些垃圾,然后返回。

  

离开应用程序时调用System.exit(0)也不会导致最终确定。

这是因为您的流程正在终止。终止程序不会在进程终止时运行。而且,正如Raghunandan所说,请不要致电System.exit(0)