Intent传递大量数据崩溃

背景:

上一级的列表页, 需要选中几条或者多条或者全部列表, 然后将数据传递到下一级页面.

intent.putExtra("selectList", selectDataArr);
bean.jpg

这是创建的Bean文件, 全选传值时要传递的就是dataList里面的内容, 那么问题来了 :

在声明dataList的ArrayList的泛型时, 这个小的BackListItemBean如果是直接嵌套在大的class BacklogListEntity内部, 当时测试数据有180条, 则直接崩溃, 报一个intent传递内容太大的错误. 如果把这个小的 BackListItemBean 单独拿出来自己新建一个java文件, 则180条测试数据可以传递, 可以传递900条左右, 如果数据在数, 也会超过intent的限制.

问题1 : 小的BackListItemBean是嵌套或者不嵌套, 为什么会占内存不同?
问题2 : intent传递较大量级的数据, 用什么方式?

回答1:(个人见解,如错请指正,谢谢)

如果是嵌套的小bean, 要想取到小的bean就要使用BackListItemBean.BacklogListEntity.BackListItemBean 这样等于嵌套两层, 这样即使只是用小的bean, 也会多存储上两层的地址信息, 单独的文件就不需要这两层的地址信息,所以可以传递的条数会多一些.

回答2:

方法1,使用静态类,传递时把数据存在静态类里面,但是使用后要注意及时置为null, 不过里面会牵扯一些java内存机制的问题.

方法2, 写数据库, 但是存取耗时, 不推荐

方法3, 只记住选中的item的数据的id, 拼成字符串传到下一级页面,然后再鞋以及页面再请求一次获取数据的接口,然后根据传进来的id比对出师选中的那些数据, 当然也有缺陷,如果选的数据多,循环次数也很多


毕竟刚接触安卓不久, 很多底层原理都还不大懂, 解决问题的方法也可能不够好, 如果有更好的方式, 希望不累赐教.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、Intent 可以传递的数据类型 在 Intent和IntentFilters(1) 中我们知道了通过 Int...
    CnPeng阅读 3,014评论 0赞 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,187评论 19赞 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,489评论 25赞 708
  • 妈妈被妹妹接走了 我在自己小小的家里 四顾茫然 妈妈蒸的杂粮窝窝 还在筐子里 水蒸气把我的睫毛 熏染 妈妈帮我缝...
    阿莲0609阅读 263评论 0赞 2
  • 品相是用来表示收藏品完好程度的一个综合指标。对和田玉而言,泛指纯净度、细腻度、完整度、形状、工艺、白度等的总和,总...
    9a2afe2f3557阅读 561评论 0赞 0

友情链接更多精彩内容