ボレーはこんな感じで使っています。問題は、私の場合、Volley はイメージをメモリにキャッシュするだけで、ディスクにはキャッシュしないことです。アプリケーションを強制すると、すべてのキャッシュがメモリから削除されます。メモリとディスクの両方にキャッシュを設定するにはどうすればよいですか?
public ImageLoader getImageLoader() {
getRequestQueue();
if (mImageLoader == null) {
mImageLoader = new ImageLoader(this.mRequestQueue, new LruBitmapCache(getApplicationContext()));
}
return this.mImageLoader;
}
holder.picture.setImageUrl(url, MyApplication.getInstance().getImageLoader());
注:私はDiskLruCache
Jake Wharton によって書かれたものを使用しましたが、すべて正常に動作しますが、この方法では、キャッシュはディスク上にしか存在しません。Volleyにビットマップが存在する場合はメモリから取得し、存在する場合はディスクから取得し、URLのキャッシュがない場合はネットワーク呼び出しを行います。