您当前的位置: 首页 >  大数据
  • 0浏览

    0关注

    674博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

面试:Activity之间传递大数据

沙漠一只雕得儿得儿 发布时间:2021-12-13 09:12:04 ,浏览量:0

方法一:将需要传递的数据写在临时文件或者数据库中,再跳转到另外一个组件的时候再去读取这些数据信息,这种处理方式会由于读写文件较为耗时导致程序运行效率较低;

方法二:将需要传递的数据信息封装在一个静态的类中。

方式二的代码:

以后我们在要传递大数据时,则可以用DataHolder.setData(name, value)进行传递,然后在目标Activity中使用DataHolder.getData(name)进行获取。

我们自定义了一个静态类DataHolder,并且设置setData和getData方法,而且考虑到极端的情况,有可能传递的对象的内存是极其大的,所以为了不造成内存泄漏,我们将要传递的对象构造成一个弱引用保存到该静态类。下面是DataHolder的代码:

public class DataHolder {

    private Map dataList = new HashMap();

    private static volatile DataHolder instance;

    public static DataHolder getInstance() {

       if(instance==null) {

            synchronized(DataHolder.class) {

                if(instance==null) {

                     instance = new DataHolder();

                }

           }

       }

       return instance;

    }

    public void setData(String key, Object o) {

        WeakReference value =new WeakReference(o);

        dataList.put(key, value);

    }

    public Object getData(String key) {

          WeakReference reference =dataList.get(key);

          if(reference !=null) {

              Object o = reference.get();

              return o;

          }

          return null;

      }

}

关注
打赏
1657159701
查看更多评论
立即登录/注册

微信扫码登录

0.0392s