gpt4 book ai didi

android - 如果不调用 setRetainInstance(true), fragment 会被销毁吗?

转载 作者:搜寻专家 更新时间:2023-11-01 09:20:22 27 4
gpt4 key购买 nike

我正在学习 Google 提供的高级 android 开发培训。这是 link .我遇到了这个:Added a static fragment in xml

并且在旋转设备时,所选单选按钮的状态将保留如下所示:landscape mode

如何在不使用 setRetainInstance(true) 的情况下保留 fragment 的状态? fragment 是否不应与 Activity 的 onDestroy() 方法一起销毁?如果在没有显式调用 setRetainInstance(true) 的情况下保留它,那么使用该方法的意义何在?我对这两个概念感到困惑。有人可以阐明这一点吗?

最佳答案

How is the fragment's state retained without using setRetainInstance(true)?

小部件的明显用户可变状态通常会自动放入保存的实例状态Bundle。这包括 EditText 小部件中的文本和 CompoundButton 实现的检查状态,例如 RadioButton

Is the fragment not supposed to be destroyed along with the activity's onDestroy() method?

是的。

If it is retained without explicitly calling setRetainInstance(true), what's the point of using the method?

在现代 Android 应用程序开发中,您不会使用它,而宁愿使用 ViewModel 系统。它在幕后使用 setRetainInstance(true)

更一般地说,保留 fragment 的目的是为了保留状态其他,而不是小部件明显的用户可变状态。例如,您可能有一些引用业务对象(例如,发票、客户)的属性,您希望在配置更改期间保留这些属性。

关于android - 如果不调用 setRetainInstance(true), fragment 会被销毁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56507373/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com