清除导航返回堆栈并重新创建活动

问题描述

我正在开发一个具有LoginFragmentHomeFragment的应用程序。 我正在使用jetpack导航组件来处理片段导航。 首先,在该用户完成LoginFragment中的登录过程后,我呼叫popBackStack(),然后将用户导航到HomeFragment。 当用户单击dark mode按钮时出现问题。 我将活动称为recreate()。 而且我需要再次还原NavHost,但是我清除了该navHost的StartDestination

我该怎么做才能解决这个问题?

注意 :我尝试使用popUpTo;但这对我不起作用。

解决方法

根据Principles of Navigation,您不应将登录名用作图形的开始目标:

注意:一个应用程序可能具有一次性设置或一系列登录屏幕。这些条件屏幕不应视为开始目标,因为用户仅在某些情况下才看到这些屏幕。

相反,请遵循guide for doing Login in the Navigation Component并有条件地导航到您的登录屏幕(即,仅当用户未登录时)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...