活动后台堆栈上的回收活动视图

时间:2012-09-17 09:19:43

标签: java android memory-leaks android-view

我有一个非常具有图像密集度的应用程序,我发现在加载多个活动时我遇到了很多OutOfMemory问题。

活动是位图的所有网格视图或列表视图,单击图像会将您带到另一个包含另一组图像的活动(有点像专辑专辑的专辑相册)。前3个活动运行正常,但当进一步向下导航时,我开始遇到一些严重的OutOfMemory错误。

使用DDMS进行堆栈转储后,似乎以前活动的GridViews和Listview占用了所有内存。这是预期的,因为它们本身显示了很多位图,但我不确定VM如何释放堆栈中的活动,如果他们这样做,即使你没有调用“finish()”它们。

Do Activities会在他们进入后台时重新审视他们的视图,然后在您导航回活动时恢复他们的视图,或清除我的网格视图和列表视图中的图像视图我需要手动处理活动onPause()和导航离开生命周期函数中的活动时是onResume()吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

请在OOME

上查看我的回答

使用bitmap.recycle()后始终致电bitmaps,因为GC无法清除位图所占用的内存。

以上链接有一个通用解决方案,请仔细阅读。