通过设备重新加载片段的导航组件 "Back"

Navigation Component "Back" via device reloads Fragment

与我的问题相关的两个屏幕为 MainFragment(主视图)和 ProfileFragment(详细视图)。从 login -> main -> profile 的启动路径工作正常。 return 路径也不起作用。通过手势或设备按钮向后导航时,我被困在主要位置。

在配置文件的初始“返回”上,我 return 进入主程序并查看主程序的 onViewCreatedonResume 生命周期。我预计从 main 返回会 return 登录甚至退出应用程序,但它会在崩溃前重新加载 main 十几次。

对于 main 的任何后续“返回”,日志显示 main 的 onAttachonCreateonViewCreatedonResume 生命周期每次都重复出现。这看起来很可疑,尽管它是一个非常普通的导航图,一个 Activity 托管四个基本片段。它们都使用它们生成的类型安全的 Directions 类 通过基本操作进行导航。我没有在任何 类.

中覆盖 onBackPressed

app:popUpTo="@+id/loginFragment"and/orapp:popUpToInclusive="true"的组合没有帮助。

我是否需要实施后退或“向上”才能按预期工作?任何想法表示赞赏。

仔细检查后,它按照编码方式工作。当然是!

前面的 LoginFragment 检查 SharedPreference 值并导航到 main。我确认这发生得太快了,我以为我再也没有回到登录屏幕,而实际上我做到了。

我会研究在身份验证后从堆栈中删除登录屏幕。