gpt4 book ai didi

java - 为什么使用保留 fragment 来通过配置更改来保持状态?

转载 作者:行者123 更新时间:2023-11-29 05:09:15 24 4
gpt4 key购买 nike

我阅读了很多有关 Activity 和 Fragment 生命周期、配置更改以及如何在它们之间保持状态的内容。

从我收集到的信息看来是google官方建议保留 fragment 以保持状态,即使必须保留的数据来自例如 Activity 。

我想知道,为什么这种方法比将状态保持在由应用程序集中管理的单例中更好?据我了解,没有应用程序就不可能有任何 fragment/Activity ,那么为什么不使用它呢?

我知道单例不喜欢,但在我看来这将是解决问题的好方法,无需创建(和滥用?)不可见的 fragment 来保持状态。

最佳答案

why this approach would be better than e.g keeping the state in a singleton that is managed centrally by the application?

单例适用于应用范围的状态。但是,特定 Activity 子类的实例可能有零个、一个或多个,这使得单例方法存在问题。另外,总的来说,我们尽量不使用不必要的单例,因为它们容易导致内存泄漏。

形容词“保留”的原因是保留 fragment 基于旧的onRetainNonConfigurationInstance(),这是一种将任意对象从旧 Activity 传递到新 Activity 的方式配置更改。保留 fragment 有助于围绕“保留实例”构造实现更好的编码实践。

实际上,在可能的情况下,您的状态应该进入保存的实例状态 Bundle,因为这不仅有助于配置更改,而且如果用户在您的进程终止后返回到您的任务由于低内存条件。

关于java - 为什么使用保留 fragment 来通过配置更改来保持状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263976/

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