Android:工具栏泄漏

Android: Leak in toolbar

我的应用程序设置为每个片段都有一个唯一的工具栏。在一个特定的片段中,我想覆盖工具栏中的向上导航或向后导航按钮以向用户发出警告以确认他们的意图。

我最初问过这个问题 并发现通过将我的原始代码更改为使用 setSupportActionBar 来实现工具栏,我能够为片段维护我独特的工具栏并覆盖向上导航按钮。

但是,我刚刚注意到,每当我退出使用 setSupportActionBar 作为工具栏的片段时,我都会发生内存泄漏(与此 发现的问题相同)。我通过注释掉设置操作栏的行来确认这一点,并看到泄漏已经消失。

如何维护我独特的工具栏、覆盖向上导航按钮并避免此内存泄漏?

However, I just noticed that whenever I back out of that fragment that uses setSupportActionBar for the toolbar, I get a memory leak

当这个特定片段被销毁时,您可以尝试通过 setSupportActionBar(null) 来消除它:

override fun onDestroy() {
    super.onDestroy()
    (requireActivity() as AppCompatActivity).setSupportActionBar(null)
}

Java:

// In the fragment
@Override
public void onDestroy() {
    super.onDestroy();
    ((AppCompatActivity) requireActivity()).setSupportActionBar(null);
}