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

如何在android中不是启动程序活动的活动中关闭应用程序的后退按钮?,android,kotlin,android-lifecycle,Android,Kotlin,Android Lifecycle,我的应用程序中有登录活动和主页活动。登录活动是启动程序活动,它检查用户是否已登录,然后自动将用户引导到主活动(如果用户已登录)。现在,当用户在Home活动中并按下back按钮时,我希望用户退出应用程序,就像在launcher活动中按下back按钮时发生的行为一样。我如何做到这一点?我绝对不希望他被带到登录活动,因为他已经登录了 我现在正在做的是,我添加了“clear top”意图标志,但用户返回登录活动时使用了以下内容: val intent = Intent(AuthUI.getApplica

我的应用程序中有登录活动和主页活动。登录活动是启动程序活动,它检查用户是否已登录,然后自动将用户引导到主活动(如果用户已登录)。现在,当用户在Home活动中并按下back按钮时,我希望用户退出应用程序,就像在launcher活动中按下back按钮时发生的行为一样。我如何做到这一点?我绝对不希望他被带到登录活动,因为他已经登录了

我现在正在做的是,我添加了“clear top”意图标志,但用户返回登录活动时使用了以下内容:

val intent = Intent(AuthUI.getApplicationContext(), 
         HomeActivity::class.java) 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)

另外,我没有使用android中的导航库,我猜您会在验证后使用明确的意图来启动HomeActivity。因此,您可以在启动启动HomeActivity的意图后立即调用LoginActivity上的finish

i、 e


然后,当用户按下HomeActivity上的back btn时,他们将退出应用程序

您有两种选择:

  • 您可以
    finish()
  • 您可以为这些屏幕使用片段,而不是在替换片段时将前一个添加到backbackback
  • 您可以覆盖
    onBackPressed
    方法,查看用户是否仍在登录,以便将他们发送到正确的活动
  • 您可以考虑使用一个启动器活动,它是一个虚拟活动,其
    onCreate()
    根据用户登录状态打开登录活动或主页活动,以便登录活动在用户已经登录时不会打开,但这仍然会有让您
    finish()的相同问题
    在进入下一个活动之前,请先执行此活动

  • 您可以在启动“主页”活动后完成登录活动

    startActivity('intent that starts home activity')
    finish()
    
    或 您可以在调用
    startActivity()
    后立即调用主页活动中的
    finishfinity()
    ,打开主页活动。当主页活动打开时,登录活动将从后台删除。
    startActivity('intent that starts home activity')
    finish()