我的应用程序中有一个登录"活动"one_answers"主页活动"。登录活动是启动器活动,它检查用户是否已经登录,然后如果用户已经登录,它会自动将用户引导到主活动。现在,当用户在主活动中并按下后退按钮时,我希望用户退出应用程序,就像在启动器活动上按下后退按钮一样。我该如何做到这一点?我绝对不想让他参加登录活动,因为他已经登录了。
我现在正在做的是,我已经添加了"clear-top"意向标志,但用户返回登录活动时使用了以下内容:
val intent = Intent(AuthUI.getApplicationContext(),
HomeActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
此外,我没有在android 中使用导航库
您可以在启动主页活动后完成登录活动。
startActivity('intent that starts home activity')
finish()
或者您可以在家庭活动中调用反向预测的finishAffinity()
我猜您将使用Explicit Intent在验证后启动HomeActivity。因此,您可以在启动启动HomeActivity的Intent后立即在LoginActivity上调用finish。
即
startActivity('intent that starts home activity')
finish()
然后,当用户按下HomeActivity上的后退按钮时,他们将退出应用程序。
您有几个选择:
- 您可以
finish()
您的登录活动,以便将其从活动后堆栈中删除 - 您可以为这些屏幕使用片段,而不是在替换片段时将前一个添加到backStack
- 您可以覆盖
onBackPressed
方法来查看用户是否仍在登录,以便将他们路由到正确的活动 - 您可以考虑有一个启动器活动,它是一个伪活动,其
onCreate()
根据用户登录状态打开登录活动或主页活动,这样在他已经登录的情况下登录活动就不会打开,但这仍然会遇到同样的问题,即在转到下一个活动之前,必须先finish()
此活动