阻止成功登录后出现登录页面

时间:2018-10-30 13:21:58

标签: android android-activity login

我有两个活动,一个带有登录屏幕,另一个是应用程序主屏幕,我想要的是:成功登录后,它会快速启动一个新活动,并且登录页面不会在从登录返回时出现。 / p>

1 个答案:

答案 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方法。

相关问题