intent传递数据太大,报TransactionTooLargeException异常

这里写图片描述
报错原因:intent传输数据太大。
解决方法有二:
第一:将传递的信息封装在一个静态的类中,或则封装在跳转对象的一个静态属性中,效率高,但是耦合性也高!(这种方法在stackoverflow网站看到的,有兴趣可以点击查看详情)

 Intent intent = new Intent(this,SecondActivity.class);
 DataSave.setValue(value);//将value设置到静态类DataSave中
 //SecondActivity.value = value;//或则将value设置到SecondActivity的静态属性中
 startActivity(intent);

第二:将传递的信息做本地存储,如SP存储、数据库等,然后在跳转对象中取出来,不会提高程序的耦合性,但是效率较低。

相对于数据库而言,个人比较喜欢sp存储,因为比较简单。
1、存储基本类型这个不多说
2、存储实体类,首先可以使用Gson将实体转为json串(可以使用new Gson().toJson()方法),然后进行存储,最后在跳转对象中取出再利用Gson转为实体即可(可以使用new Gson().fromJson()方法)。

总的来说,第一种方法简单一些!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值