繁体   English   中英

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

[英]Android - release memory on calling finish() in activity

在调用finish()结束活动时,活动中的对象不会从Android的内存中释放

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

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

对于解决在Activity的finish()上释放内存的问题,提供了帮助。

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

还要考虑过度绘制调试器,以避免像素上的过度绘制。

希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM