gpt4 book ai didi

Android - 保留 fragment ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:33 33 4
gpt4 key购买 nike

您好,我有一个关于在重新创建 Activity 时保留 fragment 的问题。我听说一种方法是在 onCreate 方法中使用 setRetainFragment(true) 。问题是——这与跟踪 Activity 中的私有(private) Fragment 属性有何不同,以便我在整个 Activity 的生命周期中始终拥有相同的 Fragment 对象?谢谢!

最佳答案

setRetainInstance(true): fragment 的状态将在配置更改(例如屏幕旋转)期间保留(而不是被破坏!)。状态将是即使配置更改导致“父”Activity 被销毁,也会保留。但是, fragment 的 View 被破坏了!

生命周期调用:

  • onPause() -> onStop() -> onDestroyView() -> onDetach()
  • onAttach() -> onCreateView() -> onStart() -> onResume()

setRetainInstance(false): fragment 的状态不会在配置更改时保留(默认)。

生命周期调用:

  • onPause() -> onStop() -> onDestroyView() -> onDestroy() -> onDetach()
  • onAttach() -> onCreate() -> onCreateView() -> onStart() -> onResume()

重要:setRetainInstance(true) 不适用于返回堆栈上的 fragment 。 setRetainInstance(true) 对于长时间运行的操作特别有用在不关心配置更改的 fragment 中。

关于Android - 保留 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664666/

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