在Activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,但在使用过程中需要注意的是不要用bundle传递大容量数据:
在做项目的过程中,需要将听写界面的听写结果信息传递到听写记录界面供显示用,但是由于传递的数据量过大导致程序ANR,甚至直接报异常(传递的信息里面有bitmap转换成的byte数组、每一个词组的拼音、词语、语音信息),经过分析发现是由于bundle不能传递大容量的数据信息,在stackoverflow里面查阅发现有同行遇到类似的问题:
(1)“ThesizelimitofIntentisstillprettylowinJellyBean,whichissomewhatlowerthan1MB(around90K),soyoushouldalwaysbecautiousaboutyourdatalength,evenifyourapplicationtargetsonlylatestAndroidversions.”
(2)“Aspermyexperience(sometimeago),youareabletoputupto1MBofdatainaBundleencapsulatedinsideIntent.Ithink,thisrestrictionwasvaliduptillFroyoorGingerBread.”
所以在通过bundle传递数据时只能传递较小的数据信息,对于在不同组件之间需要传递大容量数据的情况时,有几种替代方式可以解决不能用bundle传递这些数据的问题:
方法一:将需要传递的数据写在临时文件或者数据库中,再跳转到另外一个组件的时候再去读取这些数据信息,这种处理方式会由于读写文件较为耗时导致程序运行效率较低;
方法二:将需要传递的数据信息封装在一个静态的类中(注意当前组件和要跳转到的组件必须属于同一个进程,因为进程之间才能够共享数据),在当前组件中为类设置内容,然后再跳转到的组件中去取,这种处理方式效率很高,但是会破坏程序的独立性。
具体采用哪种替代方式取决于具体的情况,本人建议采取第二种处理方式,因为这样会大大提高程序的运行效率,至于程序的独立性,看你怎么去封装这个类了。
理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制 post方式,传送数据最大理论上没有限制,取决于服务器设置和内存大小 通常是服务器限制和其他语言限制,而不是请求规范中的限制
1.简单或基本数据类型
2.传递一个Bundle
3.传递Serializable对象
4.Parcelable对象
5.Intent
手机录屏用什么软件好呢?如果是苹果手机,你可以使用苹果自己的屏幕录制功能。如果是Android手机或者你不喜欢苹果自己的屏幕录制功能,你可以选择使用快速屏幕录制主机。接下来,让我们来谈谈为什么要选择它:1。支持水平和垂直屏幕录制,录制的视频
域名是什么?可以自由买卖吗?你好,刚果。让我们来回答这个问题。网站由域名和空间组成。如果我们把网站看作一家公司,那么空间可以理解为你公司的大小,你工作的所有东西都存放在那里。域名是你公司的地址。当你乘出租车去上班时,你只要告诉司机地址,他就
如何看待面试官嘲讽面试者“vue哪有diff算法?我看你就是随便上网找了点资料就来面试了。”的行为?虽然面试官可以控制应聘者是否可以进入公司,但并不意味着他可以随意嘲笑应聘者。面试官应该在面试中表明自己的立场。作为人力资源部的一员,我用专业
域名是什么?可以自由买卖吗?你好,刚果。让我们来回答这个问题。网站由域名和空间组成。如果我们把网站看作一家公司,那么空间可以理解为你公司的大小,你工作的所有东西都存放在那里。域名是你公司的地址。当你乘出租车去上班时,你只要告诉司机地址,他就
linux异步IO怎么理解?I/O不会被阻止,即使没有要读取的数据或要写入的空间。异步IO返回,无论发生什么。简单的意思是,在读写时调用异步IO系统调用时,进程不会阻塞。所以你的执行流程可以做其他事情。当您真的想确保数据读写成功时,您使用的
简历模板去哪里下载?1、百度一二,看其他答案三,动脑小手,切忌用条条框框四,简历要干净整洁,不要想整体有多大,不需要五,基于以上,只要找一个类似的模板,内容是关键,剩下的就是浪费时间和精力。哪些网站有免费的简历模板?,打开直接编辑保存。这里
怎样安装无线路由器?一般来说,如果你想让无线路由器正常工作,你需要连接硬件和设置软件。1、硬件连接1。路由功能的连接方式:这种方式是以路由器作为路由功能,只需将宽带进线连接到路由器的WAN端口,然后将LAN端口分别连接到其他有线设备上即可。
域名出售平台哪家好?阿里云,
MongoDB问题,下载完配置好服务可以连接但就是无法进入数据库似乎缺少什么东西但不知道怎么解决?@mongodb安装后的一些简要配置:1)在与bin目录同级的目录下创建一个数据文件夹,并在数据文件夹下创建dB和log文件夹来存储数据文件和
2个网站用同一个空间。那么mysql数据库能共用一个吗?如果两个或两个以上的网站必须使用MySQL数据库,这在技术上是可行的,而且实现非常简单。我们只需要使用表前缀来区分哪些表由网站a使用,哪些表由网站B使用。但是,如果条件允许,不建议这样