旋转设备后,我们在 backstack 或 fragmentSupportManager 中的任何片段都会激活 onSaveInstanceState。
但是,在第一次旋转之后,里面的所有内容都是空的(所有变量),应用程序崩溃并出现空指针异常。
我想知道为什么如果片段实际上被破坏为空(所有值都为空),为什么片段仍然存在并且 onSaveInstanceState 被调用?
我的代码很深,有多个基类和演示者类,可以从片段中提取大量代码。我也只使用一个 Activity 并使用 fragmentTransaction.replace。
如果人们需要,我可以添加代码,但是有很多!我希望关于 backstack 的工作方式/保留它的片段的方式有一些明显的或我不理解的东西。
我看过的没有帮助的链接是
onSaveInstanceState 会在后栈中的 Fragment 上被调用吗?
一劳永逸,如何正确地将 Fragments 的实例状态保存在后堆栈中?
将 onSaveInstanceState 与 backstack 中的片段一起使用?
BackStack Fragments 旋转时为空白
将片段的状态保存在 backstack 中