// Global cache of images.
// Using SoftReference to allow garbage collector to clean cache if needed
private final HashMap<String, SoftReference<Bitmap>> Cache = new HashMap<String, SoftReference<Bitmap>>();
SoftReference<Bitmap> ref = Cache.get(item.url.toString());
Cache.put(item.url.toString(), new SoftReference<Bitmap>(bmp));
My understanding is if trying for the reference in this Cache if it doesn’t exist, then the whole Cache will be cleaned and start from empty?
It sounds like your understanding is incorrect. Cache is simply a HashMap of String -> SoftReference. Anything you place into the HashMap will exist until you remove it.
If you get a SoftReference from the HashMap, it may or may not actually reference the Bitmap it contains. If it does not, you have to then reload the Bitmap. But the SoftReference continues to exist in either case. Futher, there is no reason the entire HashMap (“Cache”) is or needs to be cleaned and rebuilt if a single SoftReference is lost…