【问题标题】:How can i remove first activity in the Activity Stack? [duplicate]如何删除活动堆栈中的第一个活动? [复制]
【发布时间】:2020-07-11 10:40:25
【问题描述】:

我有 3 个活动,A:LoginAcitivty,B:SignupActivity,C:HomeActivity 流程是 A -> B -> C。 如果我在 SignupActivity 中注册,那么我会转到 HomeActivity。 但有一个问题。当我单击设备上的后退按钮时。我可以再次看到 LoginActivity。 所以我首先想,当我点击注册按钮时,我会回到 LoginActivity 然后在 LoginActivity 中,我使用 HomeActivity 的 Intent 转到 HomeActivity。我还在 LoginActivity 中写了 finish()。 这是我的代码。

 <SignupActivity>
 val intent = Intent(this, LoginActivity::class.java)
        intent.putExtra("transfer", "transfer")
        startActivity(intent)
        finish()

 <LoginActivity>
 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)

    if (intent.hasExtra("transfer")) {
        val intent = Intent(this, HomeActivity::class.java)
        startActivity(intent)
        finish()
    }
}

但它也不起作用。 当我在 HomeActivity 中单击设备上的后退按钮时,我预计该应用程序将结束。 但我仍然可以看到 LoginActivity 并且我再次按下返回按钮,然后它就结束了。 请帮帮我。

【问题讨论】:

  • 显示初始登录屏幕,登录成功移至主页活动。在点击注册按钮时,它会到达注册活动,如果成功则进入家庭活动?
  • 是的,一开始,LoginActivity 显示出来了,它有一个注册按钮,所以当我点击按钮时,我可以进入 SignupActivity。我必须填写一些信息。然后单击完成按钮或其他东西,然后我可以转到 HomeActivity。但问题是,当我单击设备上的后退按钮时。我仍然可以看到 LoginActivity。
  • 请检查我的回答。我在 Kotlin 中解释过

标签: android android-activity


【解决方案1】:

这是Android 活动的默认行为,因为每个活动的默认启动模式都是standard

我们可以通过两种方式修复它。我将解释一种不关心启动模式的方法。

  1. LoginActivity -> 您应该将 SignupActivity 启动为

     activity.startActivityForResult(Intent(activity,SignupActivity::class.java), YOUR_REQUEST_CODE)
    
      override fun onActivityResult(requestCode: Int, resultCode: Int, 
                                                      data: Intent?) {
                 if (requestCode == YOUR_REQUEST_CODE && resultCode == 
    RESULT_OK && data != null) {
                    // move to Home activity and `finish()` the current 
                    //login screen
             }
         }
    
  2. LoginActivity -> 如果登录成功,您应该启动HomeActivity,并在登录屏幕上启动finish()

【讨论】:

    猜你喜欢
    • 2018-08-29
    • 2011-09-12
    • 2013-08-11
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多