此问题与以下问题的答案相关联:
Error removing Bitmaps[Android]
在内存解除分配方面,在Android中使用Drawable over Bitmap是否有任何优势?
我正在查看Romain Guy项目Shelves,他使用SoftReference进行图像缓存,但是当SoftReference自动回收Bitmap的内存时,我无法搜索解除分配这些Drawables的代码。据我所知,必须在Bitmap上显式调用.recycle()才能对其进行解除分配。
答案 0 :(得分:10)
根据我的理解,如果您不需要进行太多图像处理,则位图通常会提高性能。但是,当我不手动回收它时,我遇到了内存泄漏。我的解决方案是write a class来帮助我管理我的图像,这提供了一种简单的方法来回收我的应用程序中某些点的所有位图。它还提供了一种简单的方法来重用已经加载的资源(包括Drawables)。
答案 1 :(得分:9)
您无需调用Bitmap.reycle()。这将在终结器中完成。在终结器中执行此操作意味着分配将延迟到终结器运行,因此在可能的情况下直接调用recycle()可以帮助进行内存管理。
答案 2 :(得分:0)