作者:mobiledu2502890483 | 来源:互联网 | 2023-07-22 09:39
我发现Fragment#setRetainInstance(true)令人困惑。 这里是从Android开发者API提取的Javadoc:
public void setRetainInstance (boolean retain)
控制是否在重新创buildActivity(例如从configuration更改)中保留片段实例。 这只能用于不在后面堆栈中的碎片。 如果设置,则在重新创build活动时,片段生命周期将略有不同:
问题:作为一名开发人员,你如何使用它,为什么它使事情变得更简单?
你作为开发人员如何使用这个
调用setRetainInstance(true)
。 我通常在onCreateView()
或onActivityCreated()
,我在那里使用它。
为什么它使事情变得更容易?
它通常比onRetainNonConfigurationInstance()
更简单,用于处理configuration更改(例如,将设备从纵向旋转到横向)的数据保留。 未保留的碎片被破坏并在configuration更改时重新创build; 保留的片段不是。 因此,这些保留片段所保存的任何数据都可用于configuration后更改活动。
这对保持长时间运行的资源(如套接字)非常有帮助。 有一个无用户界面的片段,保存对蓝牙sockets的引用,当用户翻转手机时,您不必担心重新连接它们。
保持引用需要很长时间才能加载像位图或服务器数据的资源也非常方便。 加载一次,保留在一个保留的片段,当活动重新加载时,它仍然在那里,你不必重build它。
添加了这个答案很晚,但我认为这会让事情更清楚。 跟我说。 当setRetainInstance是:
假
真正
不要忘记,上面的内容适用于DialogFragments和Fragments。
以上就是android开发分享为什么使用Fragment#setRetainInstance(boolean)?相关内容,想了解更多android开发(异常处理)及android游戏开发关注(编程笔记)。