使用Parcelable在3个Fragment间传自定义对象遇异常及解决
在多Fragment间传递Parcelable对象的异常解决方法
问题场景
我最近在开发中遇到了一个棘手的问题:需要在3个Fragment之间传递一个自定义对象,这个对象已经实现了Parcelable接口,也能正常从数据库中读取,但只要应用进入暂停状态(比如切换到手机上的其他应用),就会触发异常导致崩溃。
我的解决步骤
经过几次尝试,我通过以下操作解决了这个问题:
- 在Fragment创建时,先把从数据库获取到的自定义对象赋值给一个类成员变量
- 当点击按钮跳转至下一个Fragment时,不要直接传递已有的对象实例:
- 先将该成员变量置为
null,移除现有引用 - 重新从数据库获取该对象的新实例,再通过Bundle传递给目标Fragment
- 先将该成员变量置为
推测问题根源是旧的对象引用在Activity状态恢复时,出现了Parcelable序列化的冲突,重新获取实例后就避免了这个问题。
内容的提问来源于stack exchange,提问作者Vr33ni
相关产品推荐
相关产品推荐

