viewpager+fragment出现TransactionTooLargeException的大坑!!!
最近apk包发给部分测试用户,反馈出现很多崩溃,异常是android.os.TransactionTooLargeException,看表面意思就是传送的数据太大,可是检查代码并没有传输很大的数据啊。
因为项目里的这个页面超级复杂,一层viewpager+fragment嵌套,fragment里面又有第二层viewpager+fragment。
复现崩溃出现的原因、发现当fragment的数量很多时,在左右滑动切换fragment的时候,页面正常显示,但是只要此时,点击任何地方去跳转到其他页面,必崩!
开始查资料,尝试第一种方法,复写FragmentPagerAdapter里面的saveState(),如下:
@Override
public Parcelable saveState() {
Bundle bundle = (Bundle) super.saveState();
if (bundle != null) {
bundle.putParcelableArray("states",null);
}
return bundle;
}
并不起作用,有点头疼。。
尝试第二种方法,因为fragment的数量可以定制,多的时候大概有十几二十几个,每个页面的数据非常多,所以我把setOffscreenPageLimit()方法注掉,去掉以后预加载页面数量相当于是1。结果仍然无效果。。。
仔细检查代码,发现第一层fragment向第二层fragment传送了List集合数据,马上注释掉,bundle里面只留下一个id,终于解了!
原因
因为vp给每个fragment都有传递参数A,并且我传递的参数值很大,那么左右滑动vp的时候就会使得页面有多次的传递A值,总值超过了1M,触发了bundle溢出,使得点击跳转的时候发生了闪退。
总结一句话就是不可以将过大的数据放入Bundle去发送。
By LiYing
viewpager+fragment出现TransactionTooLargeException的大坑!!!的更多相关文章
- Viewpager+Fragment 跳转Activity报错android.os.TransactionTooLargeException: data parcel size xxxxx bytes
		
Viewpager + Fragment 跳转Activity报错android.os.TransactionTooLargeException: data parcel size xxxxx byt ...
 - ViewPager+Fragment取消预加载(延迟加载)(转)
		
原文:http://www.2cto.com/kf/201501/368954.html 在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragmen ...
 - Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
		
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
 - Android - ViewPager+Fragment初始化问题
		
Android应用开发中,经常会用到ViewPager + Fragment,虽然效果不错,但随之而来的还有一些问题,下面就说说其中的初始化问题. ViewPager初始化时会预加载前后的2个页面,即 ...
 - Android ViewPager Fragment使用懒加载提升性能
		
 Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...
 - ViewPager -- Fragment 切换卡顿 性能优化
		
当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即 Fragment需要加载UI内容,而又频繁地切换Fragment, ...
 - viewpager      viewpager+fragment
		
内页面 不单写页面 viewpager+布局 import java.util.ArrayList; import java.util.List; import android.os.Bundl ...
 - 【原创】【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析
		
ViewPager中切换界面Fragment被销毁的问题分析 1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3 2.Fragment生命周期以及与Activ ...
 - 转:ViewPager+Fragment基本使用方法(附源码)
		
ViewPager+Fragment可以做出多页面滑动效果,让我们的应用程序界面操作起来更加灵活 对于ViewPager和Fragment组件还不熟悉的朋友,可以先看看相关的资料 首先在activit ...
 
随机推荐
- Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码
			
题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...
 - 拓扑排序+不是字典序的优先级排列(POJ3687+HDU4857)
			
一.前言 在过去的一周里结束了CCSP的比赛,其中有一道题卡了我9个小时,各种调错都没法完整的调处来这题,于是痛下决心开始补题,这个是计划的一部分.事实上,基于错误的理解我写了若干发拓扑排序+字典序的 ...
 - WCF,WebServices,WebApi区别
			
http://www.cnblogs.com/hetring/p/4493137.html
 - 记一次Entity Framework 项目的优化过程
			
在博客园看了不少其他大神的经验.今天也抽空贡献点自己的经验(并不是说自己也是大神..小弟还只新手程序员去年才毕业的) 好了废话不多说,直接进入主题.(具体的好坏各位看官就随便看看吧..没有什么好坏之分 ...
 - leetcode 【 Partition List 】python 实现
			
题目: Given a linked list and a value x, partition it such that all nodes less than x come before node ...
 - ADO之密码验证--3次错误就锁定『改进』
			
这里使用了SqlHelper,简化程序 自己写一个SqlHelper,把数据库的连接等都写到里面去. 首先把连接字符串添加到配置文件里去,右键解决方案-->添加新建项-->选择应用程序配置 ...
 - 使用 Item,ItemManager 在 XNA 中创建物品和道具(十六)
			
平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...
 - 使用make构建c程序
			
1.Targets, Prerequisites, Commands Targets: 大意是生成的可执行文件. Prerequisites: 生成可执行文件的目标文件或C 语言源文件. Target ...
 - hadoop配置文件: hdfs-site.xml, mapred-site.xml
			
dfs.name.dir Determines where on the local filesystem the DFS name node should store the name table( ...
 - NetScaler通过DHCP服务器获取IP地址
			
NetScaler通过DHCP服务器获取IP地址 DHCP 选项参考 https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp ...