我有一个活动应用程序,其中MainActivity
负责在不同的片段之间进行切换。
FirstFragment
收集传感器数据,最后通过MainAcitvity
((MainActivity)getActivity()).setValues(values);
中
SecondFragment
在RecyclerView中显示了一些项目(对于这种情况并不重要),其中一项是打开ThirdFragment
的按钮。在此片段中,Log.i(TAG, ((MainActivity)getActivity()).getValues().toString());
ThirdFragment
提供了写一些注释的可能性,并将这些注释与((MainActivity)getActivity).getValues();
中的传感器数据一起保存用于持久存储(InternalStorage序列化+ SQL行参考文件名)。
问题是,当我们进入ThirdFragment
时,MainActivity的对象列表已完全消失。我花了一些时间来调试它,我无法看到这些对象被删除的位置。此外,这是一个新问题,我无法看到我对代码的任何新调整都会影响MainActivity的列表。
这让我相信Android操作系统中可能会有一些自动删除旧对象的功能?可能是这种情况吗?如果是这样,我最好将数据永久存储在MainActivity
中,并将其从ThirdFragment
的存储中恢复。
来自MainActivity
public ArrayList<GsrConverted> getValues() {
return values;
}
public void setValues(ArrayList<GsrConverted> values) {
this.values = values;
Log.i(TAG, "Values were set");
}
public void removeValues() {
values.clear();
Log.i(TAG, "Values removed");
}
这些仅按设计调用,不会在SecondFragment
和ThirdFragment
之间调用