美文网首页
安卓:如何跨界面,不用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