我定义了一个可以进出屏幕的ViewGroup
。当屏幕外,所有子视图都被销毁以节省内存,当视图进入屏幕时,这些子视图会被重新创建。
这些子视图中的大多数是使用标准ImageView
来绘制位图的android:src=@drawable
。
要销毁子视图,我致电viewGroup.removeAllViews()
问题是垃圾收集器需要一些时间来实际释放内存,如果我反复打开/关闭ViewGroup
,应用程序的堆大小会急剧增加。
有解决方法吗?
答案 0 :(得分:2)
当屏幕外,所有子视图都被销毁以节省内存,并且当View进入屏幕时会重新创建这些子视图。
如果可能在此活动中永远不会再次使用ViewGroup
,请执行此操作。通过重复释放和重新分配相同的东西,你正在引发自己的问题。