dro*_*ter 5 android memory-leaks memory-management bitmap imageview
我想问这个之前被问过几次的问题。抱歉,如果我重复一遍,但我不清楚这里最好的解决方案是什么。
问题是“如何在使用 ImageView 位图资源后清理它,这样我们就不会在内存中引用它?”。
这是一个例子:
第一次一切正常。控件 A 完成后,我从屏幕 2 重定向到屏幕 1。此时,其使用的控件 A 或 ImageView B 或位图的所有引用都应该已失效。他们不是!!!
我尝试过各种解决方案,包括 bitmap.recycle()、将 Finalize() 添加到 Control A、System.gs() 以及在不同位置(例如 onStop() 和 onDestroy())以及屏幕上显示的所有其他内容清空控件2、没有任何作用!
问题是,当我第二次重新访问屏幕时,从屏幕 1 到屏幕 2(即再次创建照片预览)时,我会出现内存不足异常。据我了解,之前位图的引用没有被清除。
如何在重定向回屏幕 1 之前杀死它?
我注意到一件事。如果我通过裁剪或缩小图像尺寸来减小照片的尺寸,一切都会变得顺利,几次......在我遇到同样的问题之前。所以基本上只是需要更长的时间才能充满。
我真的很感激这里的一些解决方案,因为这很关键。
您可能存在内存泄漏,此视频可能会帮助您找到问题Google I/O 2011:Android 应用程序的内存管理。
注意:3.1 之前的位图存储在 VM 堆内存中,但存储在本机内存中,这会导致在注意到泄漏时出现很多问题,有关更多信息,请参阅视频
| 归档时间: |
|
| 查看次数: |
2012 次 |
| 最近记录: |