如何在 Activity(不是 android 中的启动器 activity)中按下后退按钮关闭应用程序?
How do I close App on Back button press in an Activity which is not the launcher activity in android?
我的应用程序中有登录 Activity 和主页 Activity。登录 Activity 是启动器 Activity,它会检查用户是否已经登录,然后如果用户已经登录则自动将用户定向到主页 Activity。现在当用户是在主页 Activity 并按下后退按钮,我希望用户退出应用程序,就像在启动器 activity 上按下后退按钮时发生的相同行为。我如何实现这一目标?我绝对不希望他被带到登录 activity 因为他已经登录了。
我现在正在做的是,我添加了 'clear top' 意图标志,但用户返回到登录 Activity 并返回到此:
val intent = Intent(AuthUI.getApplicationContext(),
HomeActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
此外,我没有在 android
中使用导航库
我猜您会在验证后使用 Explicit Intent 启动 HomeActivity。因此,您可以在启动启动 HomeActivity 的 Intent 后立即调用 LoginActivity 的完成。
即
startActivity('intent that starts home activity')
finish()
然后当用户按下 HomeActivity 上的后退按钮时,他们将退出应用程序。
你有几个选择:
- 您可以
finish()
您的登录名 activity,以便它从 activity 返回堆栈中删除。
- 您可以为这些屏幕使用片段,并且在替换片段时不将前一个片段添加到 backStack。
- 您可以覆盖
onBackPressed
方法来查看用户是否仍然登录,以便您可以将他们路由到正确的 activity.
- 您可以考虑拥有一个启动器 activity,它是一个虚拟 activity,其
onCreate()
打开登录 activity 或主页 activity在用户登录状态下,如果他已经登录,则登录 activity 不会打开,但这仍然会有同样的问题,让你在移动之前 finish()
这个 activity到下一个。
您可以在启动主页 Activity 后完成登录 activity。
startActivity('intent that starts home activity')
finish()
或者
你可以打电话给 finishAffinity()
on backpressed in home activity
我的应用程序中有登录 Activity 和主页 Activity。登录 Activity 是启动器 Activity,它会检查用户是否已经登录,然后如果用户已经登录则自动将用户定向到主页 Activity。现在当用户是在主页 Activity 并按下后退按钮,我希望用户退出应用程序,就像在启动器 activity 上按下后退按钮时发生的相同行为。我如何实现这一目标?我绝对不希望他被带到登录 activity 因为他已经登录了。
我现在正在做的是,我添加了 'clear top' 意图标志,但用户返回到登录 Activity 并返回到此:
val intent = Intent(AuthUI.getApplicationContext(),
HomeActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
此外,我没有在 android
中使用导航库我猜您会在验证后使用 Explicit Intent 启动 HomeActivity。因此,您可以在启动启动 HomeActivity 的 Intent 后立即调用 LoginActivity 的完成。
即
startActivity('intent that starts home activity')
finish()
然后当用户按下 HomeActivity 上的后退按钮时,他们将退出应用程序。
你有几个选择:
- 您可以
finish()
您的登录名 activity,以便它从 activity 返回堆栈中删除。 - 您可以为这些屏幕使用片段,并且在替换片段时不将前一个片段添加到 backStack。
- 您可以覆盖
onBackPressed
方法来查看用户是否仍然登录,以便您可以将他们路由到正确的 activity. - 您可以考虑拥有一个启动器 activity,它是一个虚拟 activity,其
onCreate()
打开登录 activity 或主页 activity在用户登录状态下,如果他已经登录,则登录 activity 不会打开,但这仍然会有同样的问题,让你在移动之前finish()
这个 activity到下一个。
您可以在启动主页 Activity 后完成登录 activity。
startActivity('intent that starts home activity')
finish()
或者
你可以打电话给 finishAffinity()
on backpressed in home activity