android组件间传递大量数据

intent作为一种及时性的组件间数据传递方式非常好用,但是当传递的数据大于1M时,就力不从心了,很可能导致OOM,怎么办?
此时只能改变存储类型为永久存储,官方推荐ContentProvider;更大的数据可以用MemoryFile
PS:使用intent传参实际上是保存到bundle里面了
intent源码

 public Intent putExtra(String name, Parcelable value) {
        if (mExtras == null) {
            mExtras = new Bundle();
        }
        mExtras.putParcelable(name, value);
        return this;
    }

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

方法二:将需要传递的数据信息封装在一个静态的类中(注意当前组件和要跳转到的组件必须属于同一个进程,因为进程之间才能够共享数据),在当前组件中为类设置内容,然后再跳转到的组件中去取,这种处理方式效率很高,但是会破坏程序的独立性。
https://blog.csdn.net/wzgiceman/article/details/50610969#commentsedit

https://www.jianshu.com/p/d9bc9c668ba6

猜你喜欢

转载自blog.csdn.net/xiyangyang8110/article/details/80236186
今日推荐