尝试在 onDestoryView() 之外保留 Fragment 视图的引用时发生内存泄漏

erl*_*man 3 android memory-leaks android-fragments android-navigation leakcanary

我想从FragmentA (RootFragment)转到FragmentB但我不想在 FragmentB 返回后重新创建 FragmentA 的视图。

我正在使用 Jetpack Navigation 在 Fragment 之间导航。

为了实现上述目标,我有一个像这样的片段 Fragment:

class RootFragment : DaggerFragment() {
    private var viewToRestore: View? = null


    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        return if (viewToRestore != null) {
            viewToRestore!!
        } else {
            return inflater.inflate(R.layout.fragment_root, parent, false)
        }
    }

    override fun onDestroyView() {
        viewToRestore = this.view
        super.onDestroyView()
    }

    override fun onDestroy() {
        super.onDestroy()
    }    
}
Run Code Online (Sandbox Code Playgroud)

但是,一旦我到达具有属性viewToRestore 的Fragment BFragmentA (RootFragment) 就会泄漏。

在此处输入图片说明

任何可以在不泄漏的情况下工作但达到相同目标的解决方案?