私の質問は、このImageDownloaderでは、キャッシュをハードキャッシュとソフトキャッシュとして実装し、ハードキャッシュ用に実装しているということです。
// Hard cache, with a fixed maximum capacity and a life duration
private final HashMap<String, Bitmap> sHardBitmapCache =
new LinkedHashMap<String, Bitmap>(HARD_CACHE_CAPACITY / 2, 0.75f, true) {
@Override
protected boolean removeEldestEntry(LinkedHashMap.Entry<String, Bitmap> eldest) {
if (size() > HARD_CACHE_CAPACITY) {
// Entries push-out of hard reference cache are transferred to soft reference cache
sSoftBitmapCache.put(eldest.getKey(), new SoftReference<Bitmap>(eldest.getValue()));
return true;
} else
return false;
}
};
ハードキャッシュの最大容量値を設定しています。最大容量として大きな値を選択するとどうなりますか。つまり、アプリケーションが大容量のメモリを使用しているため、実行中の他のアプリケーションに影響します。その他アプリは、dalvikの完全に別個のインスタンスで実行されます。これで実行されているアプリケーションでメモリプレッシャーが発生することはありません。これが私が知ったものです。これが正しければ、任意のサイズのハードキャッシュを宣言できますか?このキャッシュについてはよくわかりません。 ..私が間違っている場合は私を訂正してください..