4

为了摆脱处理娱乐、保存实例状态等,Fragment.setRetainInstance()为所有人使用它是一种好习惯吗?为什么不?FragmentsFragment

4

2 回答 2

2

是的,如果必须保留配置更改,您可以将它与不在后台堆栈中的片段一起使用。它只是让事情变得更简单。

另请参阅https://stackoverflow.com/a/8550351/1300995

于 2012-07-21T19:36:54.647 回答
2

这并不总是好的,不。通过保留该实例,您是在告诉您旧的 Android 给您提供完全相同的Fragment背面实例,即onDestroy永远不会调用 Fragment,而是使用 onAttach(ed) 和 onDetach(ed)。

通常,由于方向更改(例如),您需要重新排列视图以利用不同的屏幕比例,并且让您的片段保持其状态将意味着框架不会尝试使用您的“风景友好" 例如,如果以纵向模式启动,则视图。

的影响onRetainInstance是微妙的,它不是灵丹妙药。小心使用。

于 2012-07-24T10:25:00.413 回答