Jetpack导航片段的生命周期不正确

问题描述

我试图将旧项目更改为Androidx和Navigation。 我曾经导航到第二个Fragment,但是如果我关闭第二个Fragment的速度太快,它将无法运行onDestroyView和onDestroy,我的屏幕会被白色遮住。

正常生命周期为:

E: Match   onAttach
E: Match   onCreate
E: Match   onViewCreated
E: Match   onStart
E: Match   onResume
E: Register   onPause
E: Register   onStop
E: Register   onDestroyView

我的项目的生命周期是:

E: mineFragmentNew   onPause
E: mineFragmentNew   onStop
E: SettingFragment   onAttach
E: SettingFragment   onCreate
E: SettingFragment   onViewCreated
E: SettingFragment   onStart
E: mineFragmentNew   onDestroyView
E: SettingFragment   onResume

如果我关得太快:

E: mineFragmentNew   onPause
E: mineFragmentNew   onStop
E: SettingFragment   onAttach
E: SettingFragment   onCreate
E: SettingFragment   onViewCreated
E: SettingFragment   onStart
E: SettingFragment   onStop
E: mineFragmentNew   onStart
E: mineFragmentNew   onResume

这是别人做的旧项目。我试图更改很多设置。

解决方法

我发现了问题,它是Androidx,Fragment:1.3.0-beta01 https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0-beta01

https://issuetracker.google.com/issues/167092035

似乎Fragment:1.3.0-beta02将修复,但现在不修复。 现在使用FragmentManager.enableNewStateManager(false)可以修复它。