【问题标题】:onSaveInstanceState() in fragment is called even if the fragment doesn't appear using navigation component即使片段没有使用导航组件出现,也会调用片段中的 onSaveInstanceState()
【发布时间】:2020-10-30 15:00:18
【问题描述】:

我正在使用导航组件,但我遇到了一个不知道为什么会发生的问题。

我在Fragment 中使用onSaveInstanceState(),当我更改导航组件显示的片段时,当我旋转屏幕时执行前一个片段的onSaveInstanceState()。

为什么会这样?这个片段应该被销毁,它不应该执行该方法。

【问题讨论】:

    标签: android android-fragments navigation


    【解决方案1】:

    Fragment 在后台堆栈中时不会被销毁 - 只有 Fragment 的 view 被销毁。这是片段生命周期和片段的视图生命周期(getViewLifecycleOwner())之间的关键区别。

    虽然在销毁视图之前会自动保存 Fragment 的视图状态,但在调用 onSaveInstanceState() 时保存任何特定于 Fragment 的状态仍然是 Fragment 的责任。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多