后退按钮将我带到主屏幕,而不是以前的活动

时间:2019-01-11 17:24:12

标签: android kotlin

我正在尝试向我的应用添加登录/注册活动,但是我是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))
}

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

1 个答案:

答案 0 :(得分:3)

因为您添加了行.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY),该行应用于您要开始的LoginActivity的Intent,而不是您当前所在的活动。您对finish()进行的呼叫将确保在您按下“后退”按钮时MainActivity不会被导航回去。