我有两个活动,一个带有登录屏幕,另一个是应用程序主屏幕,我想要的是:成功登录后,它会快速启动一个新活动,并且登录页面不会在从登录返回时出现。 / p>
答案 0 :(得分:0)
您是否考虑过使用片段而不是活动?
您可以使用navController来管理显示的视图。 https://developer.android.com/topic/libraries/architecture/navigation/
例如,您的“活动”中的类似内容(未经测试):
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val navController = Navigation.findNavController(this@MainActivity, R.id.fragment_container)
// Check if user is logged in
if (UserRepository.isLoggedIn()) {
navController.navigate(< the other fragment id >)
} else {
navController.navigate(< the login fragment id >)
}
}
如果您不想使用此功能,也可以在检查登录状态后使用startActivity(Intent(baseContext, XXActivity::class.java))
在Application类中进行重定向。这可能会花费一些时间,所以您还想添加一个初始屏幕->我不建议这样做,因为您无法真正将发生的事情反馈给用户,等等。
要防止显示登录屏幕时向后导航,请覆盖后退按钮:
override fun onBackPressed() {
// Do nothing or manually navigate / close app
}
我建议您使用Activity / Fragment / NavController方法。