位图回收过程是否异步?

时间:2012-06-20 22:53:42

标签: android

我有返回Drawable的方法,如果它的Bitmap对象被回收,那么它会重新加载。

public Drawable getLogo() {
    if(logo == null || Util.isRecycled(logo)) //Util.isRecycled checks - is Drawable's bitmap recycled, if it had so
        logo = CacheController.getInstance().getLogo(this);

    return logo;
}

但是在调用bitmap.recycle()之后看起来就是这样bitmap.isRecycled()仍然会返回false。我是对的,那个位图回收过程是异步的,还是我的代码中的错误?如果是这样,我怎样才能确定Bitmap现在不被回收?

1 个答案:

答案 0 :(得分:1)

如果您尝试为位图实现一些缓存机制,则不必检查它是否已被回收。只需从缓存中检索它,如果缓存中没有对它的数据结构的引用,缓存就会再创建它。请参阅本教程,了解如何缓存位图http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html