Android - 在活动中调用finish()时释放内存

时间:2016-02-16 05:27:11

标签: android android-activity memory out-of-memory activity-finish

在为关闭活动调用finish()时,活动中的对象不会从Android

中的内存中释放

案例: 活动A打开活动B,活动B的结束(),活动B关闭但是内存仍然被占用,再次从活动A调用活动B,Android分配更多内存,最终导致内存不足错误。

解决方法: 在活动B中的finish()之后使用System.exit(0)释放内存,但是在返回上一个活动A时它显示一个空白的白色屏幕。我觉得这不是理想的方式。

感谢有关解决此问题的帮助,以便在活动的finish()上释放内存。

1 个答案:

答案 0 :(得分:1)

在活动上调用finish()时,会执行onDestroy()方法。因此,重写该方法并将所有强大的ref变量设置为null,如位图,连接等。  并记住onDestroy()不是析构函数。所以你必须做自己的事情以避免OOM错误。

还要看一下透支调试器,以避免像素过度绘制。

希望这会对你有所帮助。