android - 垃圾收集 Activity

标签 android android-activity garbage-collection

如果我没记错的话,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/

相关文章:

android - 尝试解包 ConcurrentHashMap 时出现 ClassCastException

android - 如何将 View 与布局相关联

android - 新版 Android 操作系统(4.4 及更高版本)中的“FLAG_ACTIVITY_REORDER_TO_FRONT”

optimization - 在 GHC 中减少 GC 时间的一般建议

java - 如果我多次使用 "image=new Image(...)"。我会收集内存中的垃圾吗?

java - XML Pull Parser 和 SAX Parser 有什么区别

android - 单击禁用按钮时如何 toast 消息?

java - 我无法让 Android XML 布局左侧的图像正确显示。我在这里做错了什么?

android - 在android中集成两个包

java - 如果单击后退按钮,如何登陆或导航到上一个 Activity