我需要将一个数据对象放入包含软引用的weakhashmap中。如何将“Drawable”对象转换为软引用?
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应该放置“sPulled”,即软引用
答案 0 :(得分:3)
我认为这就是你要找的东西
SoftReference<Drawable> sPulled = new SoftReference<Drawable>(pulled);
但是如果删除引用的对象(或者你的缓存会随着键和空的softrefences一起增长,你可能想要添加一个队列来从地图中删除SoftRefence。
答案 1 :(得分:0)
查看Guava's MapMaker类,它允许您指定软值。比自己重新实现它更容易。