gpt4 book ai didi

android - 弹出后堆栈后,我的 fragment 没有被垃圾收集

转载 作者:行者123 更新时间:2023-11-29 20:49:16 25 4
gpt4 key购买 nike

弹出后台堆栈后,我的 Fragments 没有被垃圾回收?它们的 onStop() 方法会被调用,但不会调用它们的 onDestroyView()onDestroy() 方法。

如何确保它们的 onDestory() 方法被调用?

我犯了一个错误,制作了一个“上帝 Activity ”,我所有的 fragment .replace() 都是一个容器 FrameLayout。假设我有四个 fragment ,FragAFragBFragCFragD,它们的后栈看起来有点像像这样:

FragA -> FragB -> FragC -> FragD

FragD 是唯一可见的 fragment 。然后,我调用 .popBackstack()`

FragA -> FragB -> FragC =!= FragD

FragD 已分离,FragC 现在对用户可见。当尝试实例化一个新的 FragD(来自 FragC)时,它被创建了,并且在我的堆上有两个 FragD 的实例。并且第一个 FragD 实例的 onDestroyView() 没有被调用。

我该如何解决这个问题?

编辑:这是我当前如何替换 UI 中的 fragment 的示例:

getSupportFragmentManager().beginTransaction()
.replace(R.id.container, new SearchScreenFragment())
.addToBackStack(null)
.commit();

EDIT2:onDetach() 也没有被调用。

最佳答案

我应该一直在使用这个:getChildFragmentManager():

来自 https://stackoverflow.com/a/23500935/891242

关于android - 弹出后堆栈后,我的 fragment 没有被垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29592358/

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