从Activity实例中自动删除的对象?

时间:2017-04-07 10:25:39

标签: java android

我有一个活动应用程序,其中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");
}

这些仅按设计调用,不会在SecondFragmentThirdFragment之间调用

0 个答案:

没有答案