//本文会持续更新,希望大家能提出项目中遇到的问题和自己的观点与大家分享,让大家少走弯路。
//注意:提出的内容需要以 观点/问题--->原因--->解决方案--->扩展的方式编写
/
观点:直接new fragment的时候不要直接传参。for example: new XXXFragment(arg);
原因:当系统资源紧缺的时候,部分fragment可能被销毁,这时fragment会重新执行onCreate方法,arg就会出现null的情况,可能造成app崩溃
解决方案:
1)使用setArguments方法传参
2)在onSaveInstanceState()方法中存储arg,这样做的话arg需要实现Serializable接口。
扩展: 使用Serializable进行串行化的优缺点:
内建支持
易于实现
占用空间过大
由于额外的开销导致速度变比较慢