TransactionTooLargeException 的原因
问题
适配7.0时发生了TransactionTooLargeException的异常.
原因
1.Fragment关闭时会调用onSaveInstanceState,而在onSaveInstanceState中保存了比较大的数据.
2.调用fragment.setArguments(bundle)时,往bundle中放了过大的数据,FragmentManager管理Fragment时saveState报错.
解决方法
由于保存的数据较多,无法确定那个数据比较大,最后使用这个库_toolargetool_定位到数据较大的对象.
将_toolargetool_引入到项目
在Application中初始
这个库会在每次关闭Activity,Fragment时,打印出onSaveInstanceState的对象及大小.如图
查找log中较大的对象,进行相应的处理即可.比如保存到数据库,缩小对象等