我是android的新手,我正在开发一个应用程序,我在其中从可绘制数组中的服务器下载图像。一切都是正确的,但是当活动(其中drawables在线程中逐个下载)加载时,一段时间后它会给出内存错误。
请帮忙。
答案 0 :(得分:1)
尝试使用流而不是立即加载它并使用SoftReference。并阅读http://davidjhinson.wordpress.com/2010/05/19/scarce-commodities-google-android-memory-and-bitmaps/
答案 1 :(得分:1)
SoftReference<Drawable>
数组,将每个drawable存储在数组new SoftReference(myDrawable)
中。检索SoftReference时,请检查SoftReference.get()
是否为空。如果为null,则可以通过垃圾收集器(GC)回收drawable,并且需要将其重新下载到内存中,如果它不为null,则SoftReference.get()
将返回存储在SoftReference中的drawable。SoftReferences允许GC在遇到低内存情况时回收对象占用的内存。