флоу? Т.е. если токен есть и сессия юзера валидна, то запускаем сразу MainFlow с боттом навигейшном и т.п.
А если токен умер, то нужно запустить логин активити.
Я делал так: Запускаем сначала Main, проверяем, жив ли токен, если нет - то вызываем LoginActivity через интент и чистим бэкстек.
SplashActivity/SplashFragment (если сингл активити), которая показывает сплеш скрин и в это же время проверяет авторизацию, дабы перейти на нужный экран
как-то ради единственного if целую активити делать жалко. Сплеша как такового нет в приле, да и гугл не рекомендует для сплеша юзать активити, есть другие способы
Активити не обязательна, как я и писал выше, просто сделайте стартовым destination сплеш фрагмент, в нём делайте проверку и уже потом навигируйте на нужный екран
т.е. по сути делать то же что я написал - запускать основную активити, чекать сессию пользователя, и если она истекла - переключать на логин флоу. Зачем для этого нужен фрагмент?
Чтобы даже теоретически не было возможности попасть на main флоу с протухшим токеном.
Как уже выше написали, вы впускаете юзера в приложение, даже если он не имеет права туда войти По вашему вы изначально открываете мейн активити(или фрагмент, не важно), а уже потом делаете проверку Т.е. ваше флоу Main -> Login, а нужно бы Splash -> Main или Splash -> Login Но, если бы у меня была сингл активити + нав компонент, то я бы при старте в активити делал проверку и использовал бы метод нав компонента setStartDestination
Почему сполеш должен проверять токен?
Сплеш не должен проверять токен, сплеш должен отображатся пока кто-то проверяет токен. Думаю это и имели ввиду
Ну тогда окей, я повидал много реализации где именно сшлеш скрин занимается проверкой токена. Новичковая ошибка но очень популярная :)
Обсуждают сегодня