弱引用方式保存數據,防止內存泄漏
import java.lang.ref.WeakReference;
import java.util.HashMap;
import java.util.Map;
public class WeakDataHolder {
private static WeakDataHolder instance;
public static WeakDataHolder getInstance(){
if(instance == null){
synchronized (WeakDataHolder.class) {
if (instance == null) {
instance = new WeakDataHolder();
}
}
}
return instance;
}
private Map<String, WeakReference<Object>> map = new HashMap<>();
/**
* 數據存儲
* @param id
* @param object
*/
public void saveData(String id, Object object) {
map.put(id, new WeakReference<>(object));
}
/**
* 獲取數據
* @param id
* @return
*/
public Object getData(String id) {
WeakReference<Object> weakReference = map.get(id);
return weakReference.get();
}
}