在我的应用程序中,我有一个片段,它呈现从服务器获取的模型对象。模型类实现Parcelable
所以当设备旋转时,我将模型保存在onSaveInstanceState()
中,然后在onCreate()
中加载模型。如果savedInstanceState
捆绑包中不包含onCreate()
中的模型,则会再次发出网络请求。
我的问题是:通过实施Parcelable
并将其保存在onSaveInstanceState()
或来保留模型的状态是否更好?更好的方法是简单地设置Fragment
' setRetainInstanceState(true)
。
答案 0 :(得分:1)
在我看来,setInstanceState只能在特殊情况下使用,而onSaveInstanceState()应该用作保持片段状态的标准方法。这是保持所有Android组件状态的常用方法。 将片段保留在内存中会导致奇怪的视图行为和内存泄漏等情况。
答案 1 :(得分:0)
API Guide建议使用保留的无头数据片段。