美文网首页
安卓:如何跨界面,不用intent传递大量数据

安卓:如何跨界面,不用intent传递大量数据

作者: 铁肩侠 | 来源:发表于2019-08-09 10:25 被阅读0次

我们经常用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();
    }
 
}

这样没有额外的内存开销,没有时间消耗,不过是多了一个引用罢了。简单,高效,迅捷,无大小限制,摆脱一切束缚,自由翱翔!

相关文章

网友评论

      本文标题:安卓:如何跨界面,不用intent传递大量数据

      本文链接:https://www.haomeiwen.com/subject/pldcjctx.html