Activity之间使用Intent传递大量数据带来问题

简介: Intent在传递数据时是有大小限制的,这里官方并未详细说明,不过通过实验的方法可以测出数据应该被限制在1MB之(1024KB),采用的是传递某产品详情,发现当数据大小超过1024的时候,程序就会出现闪退、停止运行等异常(不同的手机反应不同),因此可以判断Intent的传输容量在1MB以内,但是根据不同版本、不同厂商,这个值会有区别。

Intent在传递数据时是有大小限制的,这里官方并未详细说明,不过通过实验的方法可以测出数据应该被限制在1MB之(1024KB),采用的是传递某产品详情,发现当数据大小超过1024的时候,程序就会出现闪退、停止运行等异常(不同的手机反应不同),因此可以判断Intent的传输容量在1MB以内,但是根据不同版本、不同厂商,这个值会有区别。


解决方案


方法一:


减少通过 Intent 传递的数据,将非必须字段使用 transient 关键字修饰。


方法二:


将对象转化为 JSON 字符串,减少数据体积。因为 JVM 加载类通常会伴随额外的空间来保存类相关信息,将类中数据转化为 JSON 字符串可以减少数据大小。

相关文章
|
9月前
|
存储 Android开发
Android 中使用intent.putExtra实现Activity之间的参数传递
Android 中使用intent.putExtra实现Activity之间的参数传递
59 0
|
Java API Kotlin
教你用更好的方式在Activity或Fragment之间传递以及返回数据
教你用更好的方式在Activity或Fragment之间传递以及返回数据
262 0
教你用更好的方式在Activity或Fragment之间传递以及返回数据
|
Android开发
Activity快速转换为Diglog
检测某应用是否安装 判断程序是否在前台运行 字符串非空判断 是否为当前界面 Android Studio在SVN上创建分支
166 0
|
XML Android开发 数据格式
Fragment与Activity之间的通信
前言 君子博学而日参省乎已,则知明而行无过矣。 要显示Fragment,必须将Fragment添加到Activity中。添加到Activity中有如下两种方式。
1138 0