假设我有一个与此类似的导航图:
--------- ---------
| Home | ---->| Other |
--------- ---------
|
|
V
---------
| Login |
---------
如果用户没有登录,我必须在他继续之前显示登录屏幕。根据 docs ,我在
HomeFragment
中检查用户是否已登录。如果他不是,我打开 LoginFragment
。到现在为止还挺好。但是如果用户按下
LoginFragment
,我希望应用程序退出。但由于 LoginFragment
不是起始目的地,它会简单地打开 HomeFragment
,这将再次打开 LoginFragment
。目前,如果当前目的地是
onBackPressed()
,我通过覆盖主机 Activity
和 finish()
Activity
中的 LoginFragment
来退出应用程序。但这感觉很hackish。我想这一定是一个非常常见的导航场景。那么,是否有任何“惯用”的方式来做到这一点?
最佳答案
我相信解决您的问题的最简单(并且我相信合适的)解决方案是在您的操作中基本上使用 app:popUpTo
和 app:popUpToInclusive
,该操作来自主页 --> 登录。
这是一个相关示例,当您从初始屏幕移动到主屏幕时,您不希望在他按下“返回”按钮时返回初始屏幕。
关于android - 如何在非开始目的地的后按退出应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54607794/