我在一项活动下使用 2 个不同的片段。其中一个片段包含一个列表,另一个片段包含列表中每个元素的详细视图。当活动创建片段时,2 个对象作为新实例的参数传递。
这是一个复杂的对象,其中包含许多字段(BigIntegers、ArrayLists、Strings..)。该对象实现 Parcelable 以便与片段一起使用。当信息通过分片传递时,解析数据没有任何问题,实际上我认为为了保存状态,需要这些对象是可打包的,而不是作为分片之间的参数传递。
该对象包含在一个对象列表中,其中包含对主要对象的引用。将 O1 作为对象 1,将 O2 作为对象 2,这将是一个“图形”解释:
O1:
- 细绳
- 大整数
- 数组列表
- ……
- 数组列表
氧气:
- 大整数
- O1<-------- 这是对 O1 对象的引用
当我离开活动(通过单击手机中的主页)并尝试保存状态时,我收到 StarOverflow 错误。是否与 parcelable 进入无限循环试图保存整个对象而不是引用有关?我在 android 上处理 parcelable 对象时遇到了很多麻烦。