如何在活动中关闭应用程序的后退按钮,而不是android中的启动器活动



我的应用程序中有一个登录"活动"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上的后退按钮时,他们将退出应用程序。

您有几个选择:

  1. 您可以finish()您的登录活动,以便将其从活动后堆栈中删除
  2. 您可以为这些屏幕使用片段,而不是在替换片段时将前一个添加到backStack
  3. 您可以覆盖onBackPressed方法来查看用户是否仍在登录,以便将他们路由到正确的活动
  4. 您可以考虑有一个启动器活动,它是一个伪活动,其onCreate()根据用户登录状态打开登录活动或主页活动,这样在他已经登录的情况下登录活动就不会打开,但这仍然会遇到同样的问题,即在转到下一个活动之前,必须先finish()此活动

最新更新