Не ходите в свою деятельность «вошел в систему» только потому, что вы сохранили токен, потому что, как вы правильно заметили, это может быть недействительным. Попробуйте аутентифицироваться с помощью API, когда вы получаете токен, и только переходите к «зарегистрированной» активности, если она действительно работает. В противном случае продолжайте действовать так, как если бы не было сохранено токена (и удалить истекший из базы данных).
Вы также должны заметить, что токен может истекать, когда пользователь находится в действии «вошел в систему». Например, пользователь вошел в систему, использовал приложение, а затем перешел в другое приложение со своего экрана. Через неделю он/она возвращается в ваше приложение с открытой «активностью», но в то же время токен истек, и ничего не будет работать. Поэтому вы также должны проверить, работает ли токен там, возможно, в действии onStart()
.
Как сказал indramurari, вы также можете обрабатывать его на бэкэнд, если вы его контролируете. Но имейте в виду, что он не решает вашу неотъемлемую проблему обработки истекших токенов, токен обновления также может истечь, и вы вернетесь к квадрату. Если вы не обновляете токены обновления, вы можете просто не пропустить токены входа. (Этот параграф будет комментарий к его ответу, но у меня недостаточно репутации.)
для меня 2) может быть, лучше. Так 'onFailure' проверить код ответа и перейти к loginFragment с тостами информации, что токены истек – Stepan
@Stepan выглядит лучше :) – Nikhil