我有一个图像非常密集的应用程序,我发现在加载多个活动时遇到了很多 OutOfMemory 问题。
这些活动都是位图的网格视图或列表视图,单击图像会将您带到另一个包含另一组图像的活动(有点像专辑专辑的专辑)。前 3 个活动运行良好,但是当进一步向下导航时,我开始遇到一些严重的 OutOfMemory 错误。
使用 DDMS 进行堆栈转储后,之前活动的 GridViews 和 Listviews 似乎占用了所有内存。这是意料之中的,因为他们自己显示了很多位图,但我不确定 VM 如何释放堆栈中的活动,即使你没有调用“finish()”,他们是否也会这样做他们。
活动是否在进入后台时回收他们的视图,然后在您导航回活动时恢复它们,或者正在清除我的网格视图和列表视图中的图像视图,这是我需要在活动 onPause() 和 onResume() 上手动处理的事情离开生命周期功能中的活动时?