我在一项活动下使用了2个不同的片段。其中一个片段包含一个列表,另一个片段包含列表中每个元素的详细视图。当活动创建片段时,2个对象作为参数传递给新实例。
这是一个复杂的对象,里面有很多字段(BigIntegers,ArrayLists,Strings ..)这个对象实现了Parcelable,以便与片段一起使用。当信息通过片段传递时,解析数据没有任何问题,实际上我认为这些对象需要按照保存状态的顺序进行分配,而不是作为片段之间的参数传递。
此对象包含一个对象列表,其中包含对主要对象的引用。给定O1为对象1,O2为对象2,这将是一个“图形”解释:
O1:
O2:
当我离开活动时(通过点击手机中的主页)并尝试保存状态,我收到StarOverflow错误。可能与parcelable进入无限循环试图保存整个对象而不是引用有关吗?我通过在android上处理parcelable对象遇到了很多麻烦。
答案 0 :(得分:0)
不熟悉Parcelable及其工作方式,但对我而言似乎是一个引用循环 - 即对象通过其一个或多个属性引用回自身。
如果可以循环回任何实例,请参阅Parcelables的类定义。