什么是跨Android配置更改保留模型的最佳方法?

时间:2015-06-29 20:09:39

标签: android android-fragments

在我的应用程序中,我有一个片段,它呈现从服务器获取的模型对象。模型类实现Parcelable所以当设备旋转时,我将模型保存在onSaveInstanceState()中,然后在onCreate()中加载模型。如果savedInstanceState捆绑包中不包含onCreate()中的模型,则会再次发出网络请求。

我的问题是:通过实施Parcelable并将其保存在onSaveInstanceState() 来保留模型的状态是否更好?更好的方法是简单地设置Fragment' setRetainInstanceState(true)

2 个答案:

答案 0 :(得分:1)

在我看来,setInstanceState只能在特殊情况下使用,而onSaveInstanceState()应该用作保持片段状态的标准方法。这是保持所有Android组件状态的常用方法。 将片段保留在内存中会导致奇怪的视图行为和内存泄漏等情况。

答案 1 :(得分:0)

API Guide建议使用保留的无头数据片段。