Intent不能传递较大数据的原因

这个问题之前遇到过,但是当时没有多想,网上直接查了资料用了代替方法传递数据了。至于为什么不能传递较大的数据,直到今天开始阅读官方文档才了解。

还是得多阅读官方文档,很多东西官方都给出解释了

我这里就贴出官方文档的解释了。

Binder 事务缓冲区的大小固定有限,目前为 1MB,由进程中正在处理的所有事务共享。由于此限制是进程级别而不是 Activity 级别的限制,因此这些事务包括应用中的所有 binder 事务,例如 onSaveInstanceState,startActivity 以及与系统的任何互动。超过大小限制时,将引发 TransactionTooLargeException。

以上就是官方的解释了。

通俗点说,intent传递数据会存储在Binder事务缓冲区,超过这个大小限制,就会抛出异常。这个缓冲区还是共用的,用的人多了,内存不够,也会抛出异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值