
问题是“如何在使用后清理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 – 如何清理位图资源所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)