弱引用方式保存数据,防止内存泄漏
public class DataHolder {
private Map<String, WeakReference<Object>> data = new HashMap<String, WeakReference<Object>>();
private static DataHolder instance;
public static DataHolder getInstance() {
if (instance == null) {
synchronized (DataHolder.class) {
if (instance == null) {
instance = new DataHolder();
}
}
}
return instance;
}
public void save(String id, Object object) {
data.put(id, new WeakReference<Object>(object));
}
public Object retrieve(String id) {
WeakReference<Object> objectWeakReference = data.get(id);
return objectWeakReference.get();
}
}
保存
DataHolder.getInstance().save("id", data);
调用
DataHolder.getInstance().retrieve("id")