android – 如何清理位图资源

android – 如何清理位图资源,第1张

概述我想问几次之前被问过的这个问题.对不起,如果我重新尝试,但我不清楚这里有什么是最好的解决方案. 问题是“如何在使用后清理ImageView位图资源,因此我们在内存中没有引用它?”. 这是一个例子: >屏幕1重定向到屏幕2 >屏幕2包含控件A(预览大照片) >控件A包含ImageView B. >启动控件A时设置ImageView B. 第一次一切都很好.一旦控制A完成,我将从屏幕2重定向到屏幕1. 我想问几次之前被问过的这个问题.对不起,如果我重新尝试,但我不清楚这里有什么是最好的解决方案.

问题是“如何在使用后清理ImageVIEw位图资源,因此我们在内存中没有引用它?”.

这是一个例子:

>屏幕1重定向到屏幕2
>屏幕2包含控件A(预览大照片)
>控件A包含ImageVIEw B.
>启动控件A时设置ImageVIEw B.

第一次一切都很好.一旦控制A完成,我将从屏幕2重定向到屏幕1.此时,控制A或ImageVIEw B或其使用的位图的所有引用都应该是死的.他们不是!!!

我已经尝试了各种解决方案,包括bitmap.recycle(),将finalize()添加到Control A,System.gs()和varIoUse场所中的nulling控件,如onStop()和onDestroy(),以及屏幕上的其他所有内容2,什么都行不通!

问题是当我第二次重新访问屏幕,从屏幕1到屏幕2(即再次创建照片预览)时,我的内存异常.据我所知,前一个位图的引用未被清除.

在我重定向回屏幕1之前如何杀死它?

有一点我注意到了.如果我缩小照片的尺寸,比如裁剪或制作较小尺寸的图像,一切顺利,很少次……在我遇到同样的问题之前.所以基本上只需要更长的时间来填满.

我非常感谢这里的一些解决方案,因为这很关键.

解决方法 您可能有内存泄漏,此视频可能会帮助您找到问题 Google I/O 2011: Memory management for Android Apps.

注意:3.1之前的位图存储在VM堆内存中但​​存储在本机内存中,这会导致注意泄漏时出现很多问题,有关详细信息,请参阅视频

总结

以上是内存溢出为你收集整理的android – 如何清理位图资源全部内容,希望文章能够帮你解决android – 如何清理位图资源所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1126314.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存