问题描述
我试图将旧项目更改为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)可以修复它。