1

我在一项活动下使用 2 个不同的片段。其中一个片段包含一个列表,另一个片段包含列表中每个元素的详细视图。当活动创建片段时,2 个对象作为新实例的参数传递。

这是一个复杂的对象,其中包含许多字段(BigIntegers、ArrayLists、Strings..)。该对象实现 Parcelable 以便与片段一起使用。当信息通过分片传递时,解析数据没有任何问题,实际上我认为为了保存状态,需要这些对象是可打包的,而不是作为分片之间的参数传递。

该对象包含在一个对象列表中,其中包含对主要对象的引用。将 O1 作为对象 1,将 O2 作为对象 2,这将是一个“图形”解释:

O1:

  • 细绳
  • 大整数
  • 数组列表
  • ……
  • 数组列表

氧气:

  • 大整数
  • O1<-------- 这是对 O1 对象的引用

当我离开活动(通过单击手机中的主页)并尝试保存状态时,我收到 StarOverflow 错误。是否与 parcelable 进入无限循环试图保存整个对象而不是引用有关?我在 android 上处理 parcelable 对象时遇到了很多麻烦。

4

1 回答 1

0

不太精通 Parcelable 及其工作方式,但在我看来,它似乎是一个引用循环 - 即对象通过其一个或多个属性引用回自身。

如果您可以循环回任何实例,请参阅 Parcelables 的类定义。

于 2012-11-01T23:57:32.447 回答