如果我没记错的话,Activity 对象永远不会从内存中销毁,它们一直存在直到进程被终止。因此,调用 finish() 或 Android 操作系统销毁您的 Activity 并不意味着它在内存中被销毁,而仅意味着它现在处于“销毁状态”(非官方名称)。
为了演示,我确实重写了我的 Activity 的 finalize 方法,然后使用另一个 Activity 的按钮单击事件中的 System.gc()。我看到正在调用我的 Activity 的 finalize 方法。如果进程运行时不能销毁 Activity 对象, Activity 如何被垃圾收集?
最佳答案
如果没有对 Activity 的更多引用,那么它会被垃圾收集 - 但泄漏 Activity 真的很容易 - 也就是说现在有一个非常好的工具来查找 Activity 泄漏:https://github.com/square/leakcanary 此外,仅在调用 onDestroy() 之后才对 Activity 进行 GC,而不是在调用 finish() 之后直接进行回收,因此您的测量不起作用
关于android - 垃圾收集 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33087827/