Java, convert object to softreference
-
13-03-2021 - |
Question
I need to put a data object into my weakhashmap containing softreferences. How do I convert my "Drawable" object into a softreference?
WeakHashMap <String, SoftReference<Drawable>> tempPulled = new WeakHashMap<String, SoftReference<Drawable>>();
Drawable pulled = BitmapDrawable.createFromResourceStream(null, null, conn.getInputStream(), "galleryImage", options);
SoftReference<Drawable> sPulled;
tempPulled.put(id, pulled);
tempPulled should be putting "sPulled" , the softreference
Solution
I think this is what you are looking for
SoftReference<Drawable> sPulled = new SoftReference<Drawable>(pulled);
But you probably want to add a queue to remove the SoftRefence from the map should the referenced object be removed (or your cache will grow with keys and empty softrefences.
OTHER TIPS
Take a look at Guava's MapMaker class, which allows you to specify soft values. Way easier than reimplementing it yourself.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow