Android 中使用Bundle传递大容量数据问题
来源:互联网 发布:磐石软件 编辑:程序博客网 时间:2024/05/23 13:32
在Activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,在使用过程中需要注意的是不要用bundle传递大容量数据:
在做项目的过程中,发现使用bundle在两个Activity之间传递数据的时候,有时候第二个Activity根本就显示不出来,刚开始以为是第二个Activity的布局出了问题,可怎么调整也发现解决不了问题,然后注释掉了一个往bundle里put数据的代码,发现立即正常了,经过分析发现是由于bundle不能传递大容量的数据信息,在stackoverflow里面查阅发现有同行遇到类似的问题:
(1)“The size limit of Intent is still pretty low in Jelly Bean, which is somewhat lower than 1MB (around 90K), so you should always be cautious about your data length, even if your application targets only latest Android versions.”
(2)“As per my experience (sometime ago), you are able to put up to 1MB of data in a Bundleencapsulated inside Intent. I think, this restriction was valid up till Froyo or GingerBread.”
所以在通过bundle传递数据时只能传递较小的数据信息,对于在不同组件之间需要传递大容量数据的情况时,有几种替代方式可以解决不能用bundle传递这些数据的问题:
方法一:将需要传递的数据写在临时文件或者数据库中,再跳转到另外一个组件的时候再去读取这些数据信息,这种处理方式会由于读写文件较为耗时导致程序运行效率较低;
方法二:将需要传递的数据信息封装在一个静态的类中(注意当前组件和要跳转到的组件必须属于同一个进程,因为进程之间才能够共享数据),在当前组件中为类设置内容,然后再跳转到的组件中去取,这种处理方式效率很高,但是会破坏程序的独立性。
具体采用哪种替代方式取决于具体的情况,我比较喜欢采取第二种处理方式,因为这样会大大提高程序的运行效率,至于程序的独立性,看你怎么去封装这个类了。
- Android 中使用Bundle传递大容量数据问题
- Android 中使用Bundle传递大容量数据问题
- Android中Intent结合Bundle传递数据
- Android中Bundle传递数据和对象
- Android使用Bundle进行数据传递分析
- Android使用Bundle进行数据传递分析
- Android使用intent、bundle传递数据
- Android 数据传递Bundle
- Android Bundle数据传递
- Android Intent传递Bundle数据
- 如何使用 Bundle 传递数据?
- 使用Bundle传递复杂数据
- Android Intent.bundle 在activity中一对一传递数据
- Android 使用Bundle在Activity间传递数据
- 使用Bundle在Activity中来传递数据
- Android中使用Bundle交换数据
- 解决Android与服务器交互大容量数据问题
- 解决Android与服务器交互大容量数据问题
- java.net.DatagramPacket/java.net.DatagramSocket-UDP Socket编程
- python中内建函数isinstance的用法
- 如何用C++实现自己的Tensorflow
- Android基础之基本控件
- 120行代码实现 浏览器WebRTC视频聊天
- Android 中使用Bundle传递大容量数据问题
- jmeter压力测试(简单的压力测试)
- HDFS租约机制
- 11
- SQLserver2008全角半角转换
- 代码优化②——阿里巴巴Java开发手册
- 点击空白回收键盘
- 给你不同面值的硬币和总金额target。 写一个函数来计算组成这个数量的组合的数量。
- JS完美运动框架详解——原理分析及demo