我们经常用Intent、binder来传递数据,但是可传递的数据大小非常有限,如何摆脱binder,摆脱context,摆脱大小限制呢?
推荐使用单例中用map保存对象的引用方式,如下代码:
public class DataHolder {
Map<String, WeakReference<Object>> data = new HashMap<>();
private static final DataHolder holder = new DataHolder();
public static DataHolder getInstance() {
return holder;
}
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();
}
}
这样没有额外的内存开销,没有时间消耗,不过是多了一个引用罢了。简单,高效,迅捷,无大小限制,摆脱一切束缚,自由翱翔!
网友评论