首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止android出现内存溢出错误

如何防止android出现内存溢出错误
EN

Stack Overflow用户
提问于 2011-04-05 15:35:20
回答 2查看 3.6K关注 0票数 1

我是android的新手,我正在开发一个应用程序,在这个应用程序中,我正在从服务器下载可绘制数组中的图像。一切都是正确的,但是当活动(在线程中一个接一个地下载绘图文件)加载时,一段时间后,它会出现内存溢出错误。

请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2011-04-05 15:37:52

尝试使用streams而不是一次加载它,并使用SoftReference。并阅读http://davidjhinson.wordpress.com/2010/05/19/scarce-commodities-google-android-memory-and-bitmaps/

票数 1
EN

Stack Overflow用户

发布于 2011-04-05 16:01:52

  1. 这不是内存泄漏,你只是试图一次放入更多的图像到内存中,而不是
  2. ,为了解决这个问题,你可以使用
    • ,使用一个SoftReference<Drawable>数组,将每个可绘制的存储在数组中作为new SoftReference(myDrawable)。检索SoftReference时,请检查SoftReference.get()是否不为空。如果为null,则说明可绘制对象已被垃圾收集器(GC)回收,您需要将其重新下载到内存中;如果不为null,则SoftReference.get()将您存储在SoftReference.
    • Limit中的可绘制对象数组大小返回到适合内存的大小。如果数组的大小已经达到最大值,那么您必须实现一些系统来存储新图像而不是旧图像(例如,将新图像放在数组的末尾,并删除array)

的第一个元素

SoftReferences允许GC在遇到内存不足的情况时回收对象占用的内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5548635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档