1

を返すメソッドが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()まだ returnfalseです。そのビットマップのリサイクル プロセスは非同期に行われますか、それとも私のコードの単なるバグですか? Bitmapもしそうなら、それが現在リサイクルされていないことをどのように確認できますか?

4

1 に答える 1

1

ビットマップのキャッシュ メカニズムを実装しようとしている場合は、再利用されているかどうかを確認する必要はありません。キャッシュから取得するだけで、データ構造に参照がない場合は、キャッシュによって再度作成されます。ビットマップをキャッシュする方法については、このチュートリアルを参照してくださいhttp://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

于 2012-06-21T02:04:22.970 に答える