android的intent大数据传输的案例
来源:互联网 发布:32团淘宝兼职 编辑:程序博客网 时间:2024/06/05 06:11
有人通过intent传输数据,结果发现数据量有几M,出现问题:
D/dalvikvm( 5731): WAIT_FOR_CONCURRENT_GC blocked 0ms
E/JavaBinder( 641): !!! FAILED BINDER TRANSACTION !!!
W/ActivityManager( 641): Exception in new application when starting activity xxxActivity
W/ActivityManager( 641): android.os.TransactionTooLargeException
W/ActivityManager( 641): at android.os.BinderProxy.transact(Native Method)
W/ActivityManager( 641): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:705)
W/ActivityManager( 641): at com.android.server.am.ActivityStack.realStartActivityLocked(ActivityStack.java:693)
W/ActivityManager( 641): at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:4182)
W/ActivityManager( 641): at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:4260)
W/ActivityManager( 641): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:357)
W/ActivityManager( 641): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1672)
W/ActivityManager( 641): at android.os.Binder.execTransact(Binder.java:367)
W/ActivityManager( 641): at com.android.server.SystemServer.init1(Native Method)
W/ActivityManager( 641): at com.android.server.SystemServer.main(SystemServer.java:1007)
W/ActivityManager( 641): at java.lang.reflect.Method.invokeNative(Native Method)
W/ActivityManager( 641): at java.lang.reflect.Method.invoke(Method.java:511)
W/ActivityManager( 641): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
W/ActivityManager( 641): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
W/ActivityManager( 641): at dalvik.system.NativeStart.main(Native Method)
D/ActivityThread( 5745): setTargetHeapUtilization:0.25
D/ActivityThread( 5745): setTargetHeapIdealFree:8388608
D/ActivityThread( 5745): setTargetHeapConcurrentStart:2097152
通过google搜索stackoverflow,发现:
As per my experience (sometime ago), you are able to put up to 1MB of data in a Bundle
encapsulated inside Intent
. I think, this restriction was valid up till Froyo or GingerBread.
However, in order to overcome this issue, I would suggest you to save your content on a temp file and pass the path/URI of your temp file to your second activity. Then in your second activity, read the contents out from file, perform your desired operation and finally delete that file.
If you want, you may also incorporate Shared_Preferences for this task - if you think handling files is cumbersome.
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.
那么通过intent如何传输大数据呢?压缩数据,不过数据量也不能太大,目前我们的测试数据是8M字节左右。如果大于这个数据,需要通过其他手段传输,例如文件或者共享内存。
- android的intent大数据传输的案例
- Intent之间的数据传输
- 简单的Intent案例
- TCP协议实现数据传输的简单案例
- Android中隐式Intent的用途(2) -- 实用案例
- 大数据传输下的WCF配置
- Dubbo限制大数据传输的解决方案
- Dubbo限制大数据传输的解决方案
- android-活动之间的数据传输
- android的其中两大组件Activity 和 Intent
- intent 数据传输
- Android的Intent
- (转)android的Intent
- android的intent使用方法
- android的intent使用方法
- Android的一些Intent
- android的intent使用方法
- android的Intent
- 2014十大网络红人排行榜(附照片)
- 2. C++ 11之途 - 新关键词
- bss,data,text,rodata,堆,栈,常量段
- java在poj上提交注意的问题
- 从Delphi开始学Cocos2dx-3.0[9]:持续动作之缩放持续动作
- android的intent大数据传输的案例
- 阅读博客收益多
- JNI调用机制
- x264预设类参数详解
- cocos2dx之CCTableView
- 《C Primer Plus》第一章 概览 课后习题
- git使用入门(1)
- FOJ 2141 随机法 求边数至少为原图一半的同构子图 且子图为二分图
- va_start和va_end使用详解