用户Fragment.setRetainInstance不处理娱乐是一种好习惯吗?

时间:2012-07-21 18:58:19

标签: android

Fragment.setRetainInstance()用于所有Fragments以摆脱处理Fragment娱乐,保存实例状态等是不是一个好习惯?为什么不呢?

2 个答案:

答案 0 :(得分:2)

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

另见https://stackoverflow.com/a/8550351/1300995

答案 1 :(得分:2)

这并不总是好的,不是。通过保留实例,你告诉'你们老了Android给你一个Fragment的完全相同的实例,即片段的onDestroy从未被调用,而不是它是onAttach(ed)和onDetach(ed)

通常,您需要重新流动视图以利用不同的屏幕比例(例如)更改方向并让您的片段保留其状态意味着框架不会尝试使用您的例如,如果以纵向模式启动,则“横向友好”视图。

onRetainInstance的影响是微妙的,它不是银弹。谨慎使用。