首页 > 解决方案 > 后退按钮将我带到主屏幕而不是以前的活动

问题描述

我正在尝试向我的应用程序添加登录/注册活动,但我是 Android 开发新手,所以我不确定我应该这样做的正确方式。

我目前的逻辑是:

应用程序打开MainActivityMainActivity立即启动LoginActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        startActivity(
            Intent(baseContext, LoginActivity::class.java).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
        )
        finish()
    }
}

LoginActivity一个登录表单和注册/忘记密码按钮。按下注册按钮时,我启动 RegisterActivity:

private fun handleRegisterClick() {
    startActivity(Intent(baseContext, RegisterActivity::class.java))
}

我遇到的问题是,当我在 中按下 Android 后退按钮时RegisterActivity,它会将我带到主屏幕而不是返回到LoginActivity. 为什么会这样?

标签: androidkotlin

解决方案


因为您添加了.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)应用于您正在启动的 IntentLoginActivity而不是您当前所在的 Activity 的行。您拨打的电话finish()将确保MainActivity当您按下后退按钮时不会导航回.


推荐阅读