如何结束已移除 View 的生命周期?
How to end the lifecycle of a removed View?
当我在一个 activity 中创建、添加和删除视图时,删除的视图的生命周期是什么?可以使用 removeView()
或 removeAllViews()
.
删除它们
它们是否可以在删除后立即用于垃圾回收,还是会一直保留到 activity 消失?例如,因为所有视图的任何寄存器都附加或不附加。
我是否应该执行额外的步骤以快速将它们用于垃圾回收?
如果您有一个以编程方式创建的 View
,那么您需要确保两件事以确保 View
已被 GC。
- 从您添加
View
的 ViewGroup
调用 removeView()
。这是因为 ViewGroup
将维护对子项的引用。
- 确保您没有在代码中维护对
View
的任何引用,例如作为 Activity
class 的字段。以这种方式维护对 View
的引用将防止它被 GC。
有几篇关于如何避免内存泄漏的好文章,包括 this one
当我在一个 activity 中创建、添加和删除视图时,删除的视图的生命周期是什么?可以使用 removeView()
或 removeAllViews()
.
它们是否可以在删除后立即用于垃圾回收,还是会一直保留到 activity 消失?例如,因为所有视图的任何寄存器都附加或不附加。
我是否应该执行额外的步骤以快速将它们用于垃圾回收?
如果您有一个以编程方式创建的 View
,那么您需要确保两件事以确保 View
已被 GC。
- 从您添加
View
的ViewGroup
调用removeView()
。这是因为ViewGroup
将维护对子项的引用。 - 确保您没有在代码中维护对
View
的任何引用,例如作为Activity
class 的字段。以这种方式维护对View
的引用将防止它被 GC。
有几篇关于如何避免内存泄漏的好文章,包括 this one