片段中的setRetainInstance(boolean)方法

时间:2015-11-30 04:35:32

标签: android android-fragments

从文档中可以看出setRetainInstance(boolean)方法有助于在设备配置更改中保留所有活动对象,但我读到的大多数示例和文档都涉及无头片段。我们不应该在具有UI元素的片段中使用该方法。如果没有,请详细说明原因。

1 个答案:

答案 0 :(得分:2)

不要使用无头碎片进行背景处理。即使像这样的文章:http://www.vogella.com/tutorials/AndroidFragments/article.html#headlessfragments1或这一篇:http://luboganev.github.io/blog/headless-fragments/也会提到它。

后台处理应该在服务中完成(存在替代方案,但问题不在于此)。在无头片段中进行背景处理的组件是一个"漏洞" (而不是谷歌意味着使用片段的方式)。

注意:即使使用setRetainInstance(true),某些设备也不会在配置更改中保留Fragment。使用无头片段运行后台任务显然不适用于这些设备。

setRetainInstance(true)旨在与具有ui的片段一起使用,以在配置更改中保留它。如果你在片段中使用加载器非常方便,因为即使活动被销毁并重新创建,(昂贵的?)查询也不会重新运行。