android - 后退按钮将我带到主屏幕而不是以前的活动
问题描述
我正在尝试向我的应用程序添加登录/注册活动,但我是 Android 开发新手,所以我不确定我应该这样做的正确方式。
我目前的逻辑是:
应用程序打开MainActivity
,MainActivity
立即启动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
. 为什么会这样?
解决方案
因为您添加了.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
应用于您正在启动的 IntentLoginActivity
而不是您当前所在的 Activity 的行。您拨打的电话finish()
将确保MainActivity
当您按下后退按钮时不会导航回.
推荐阅读
- scala - 如何在scala中收集分页结果
- python - 当有一个空元素时如何找到列表的总和
- split - 拆分由空格字符分隔的一列数字。
- mongodb - MongoDB聚合:根据匹配情况返回不同的结果
- mysql - MySQL缓存准备好的语句以提高性能
- semantic-ui-react - 我可以为我的自定义主题添加新颜色到 SUI.COLORS 吗?
- javascript - 如何从另一个网站复制 {{}} 内的数据以供在我的网站中使用?
- android - Android & Unity3D - 混合数据交换/动作/通信并使用 UNity3D 作为集成
- python - 我们可以将条件参数传递给 pytest 中的夹具函数吗?
- sql - 如何确定每个用户的平均笔记数?