запретить отображение страницы входа после успешного входа - PullRequest
0 голосов
/ 30 октября 2018

У меня есть два действия, одно с экраном входа в систему, а другое - это домашний экран приложения, который мне нужен: после успешного входа в систему он быстро запускает новое действие, и страница входа в систему не отображается после возврата из входа в систему.

1 Ответ

0 голосов
/ 30 октября 2018

Рассматривали ли вы использование фрагментов вместо действий?

Вы можете использовать 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 >)
    }
}

Если вы не хотите использовать это, вы также можете выполнить перенаправление в своем классе Application, используя startActivity(Intent(baseContext, XXActivity::class.java)) после того, как проверили свое состояние входа в систему. Это может занять некоторое время, поэтому вы также хотите добавить заставку -> которую я не рекомендую, потому что вы не можете дать обратную связь пользователю о том, что происходит, и так далее.

Для предотвращения перехода назад при отображении экрана входа в систему вы переопределяете кнопку возврата:

override fun onBackPressed() {
    // Do nothing or manually navigate / close app
}

Я бы рекомендовал вам использовать подход Activity / Fragment / NavController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...