导航组件不为底部导航片段调用 onDestroy

时间:2021-07-30 11:37:34

标签: android android-viewmodel android-architecture-navigation android-jetpack-navigation

这可能是我对这个库本身的误解,但我似乎遇到了一个问题。我目前使用的是 Android 导航组件 (v3.4.0),并且我使用的是链接在一起的底部导航栏。

我看到的问题是,当我导航到另一个底部导航项时,会创建一个新片段和一个新视图模型。之前的实例都没有被销毁,或者至少没有调用 onDestroy。我可以通过使用流来测试逻辑,当我从底部导航项目 1 导航到底部导航项目 2,然后返回底部导航项目 1,并且从流中发出的项目被接收两次,因为现在有 2 个实例底部导航项目 1s 视图模型。我还可以记录每个实例的哈希码,看看有什么不同。

当我向上导航一个级别,然后返回时,更高级别的片段和视图模型会调用它们的 onDestroy 和 onCleared。

我是否误解了这个库应该如何工作?

0 个答案:

没有答案