次のようなものを使用することを検討してください。
ConcurrentHashMap<String, SoftReference<Bitmap>> image_cache =
newConcurrentHashMap<String, SoftReference<Bitmap>>( 1 );
キャッシュのメモリ部分用。デバイスがメモリを必要とするため、SoftReference はガベージ コレクションされます。これにより、アプリケーションは、メモリの問題を引き起こすことなく、できるだけ多くの画像をメモリに保持できます。
次を使用して、ルート パスを持つ SD カード上のファイル キャッシュでこのキャッシュをバックアップすることを選択できます。
Environment.getExternalStorageDirectory();
または、次のパスを使用して Android によって提供されるキャッシュ スペースを使用します。
context.getCacheDir();
キャッシュ スペースはプライベートであるため、SD カードのイメージはユーザーが取得したり、サード パーティのプログラムによって変更したりできます。キャッシュ スペースはデバイスの内部ストレージにあり、アプリケーション マネージャーの統計に表示されます。ユーザーは、設定 -> アプリケーション マネージャー画面から簡単にこのキャッシュをクリアすることもできます。
最初にメモリ キャッシュをチェックし、見つかった場合はソフト参照をチェックし、見つからない場合はファイル システムをチェックし、最後にネットワークからフェッチしてファイルに保存し、メモリ キャッシュに入れるアルゴリズムを入力する必要があります。 . 次に、クライアントの要件に基づいて、この構造の上にキャッシュの要件を追加できます。