这真的很奇怪,因为默认情况下,对象类中的 finalize 方法会在对象从内存中删除之前执行清理任务,这也是 onDestroy 类所做的事情。
因此,我对它们的不同之处onDestroy()
以及为什么对于他们已经拥有它决定实施的 android 开发人员产生了疑问finalize()
。
我正在研究它,但你们怎么看?
这真的很奇怪,因为默认情况下,对象类中的 finalize 方法会在对象从内存中删除之前执行清理任务,这也是 onDestroy 类所做的事情。
因此,我对它们的不同之处onDestroy()
以及为什么对于他们已经拥有它决定实施的 android 开发人员产生了疑问finalize()
。
我正在研究它,但你们怎么看?
它们可以说是相似的:
该方法
onDestroy()
在 Activity 完成时调用,并且在销毁之前完成Activity
,要么是因为调用了该方法,要么是finish()
因为操作系统需要内存。finalize()
当 GC 完成对象时调用该方法。它们是相似的,因为:在这两种方法中,您都可以在 Activity 或 Object 被销毁之前执行操作。
不同之处在于: Finalize()由 Gargage Collector 调用,而onDestroy()在方法执行时调用,
finish ()
或者因为系统临时销毁该 Activity 实例以节省内存。**从文档中:
Activity的方法
finalize()
是存在的,但请记住一件重要的事情,不要试图智取垃圾收集器,因为它将决定何时删除实例。我提到它是因为以前经常看到这个调用来尝试释放内存 ⤜(ʘ_ʘ)⤏,它的执行也是由垃圾收集器决定的。在android应用程序中执行该方法时
onDestroy
,有两个原因finish()
给Activity
当执行该方法时,
finalize()
会发生完全相同的事情(需要释放内存或不识别对相关对象的引用),但它由收集器调用。请注意,无法知道垃圾收集器何时会调用该函数finalize()
,如果您需要使用此方法,您的逻辑和代码很可能有问题。执行它由收集器处理。您可以覆盖这两种方法并添加代码以了解或查看您的对象何时将被销毁。