Android Компонент архитектуры: где хранить маркер аутентификации? ViewModel или SharedPreferences? - PullRequest
0 голосов
/ 21 января 2020

Я реализую фрагмент логина нового приложения. И я имею дело с проблемой сохранения токена доступа где-нибудь, чтобы использовать его для каждого вызова в приложении.

Мне было интересно, где мне его сохранить. Должен ли я использовать общие настройки как обычно, или я должен использовать способ, которым я не знаю viewModel, чтобы хранить там этот токен?

Проблема в том, что если я сохраню accessToken в LoginViewModel, я бы Мне нужно вызывать эту viewModel во всех представлениях, где мне нужен accessToken. Это не лучший вариант.

Есть идеи? Спасибо

1 Ответ

0 голосов
/ 30 января 2020

Как правило, существует взаимно-однозначное отношение между представлением и его моделью представления, что означает, что ViewModel используется для предоставления логи c для представления или страницы, Если вы хотите использовать этот токен на своей странице в приложении, то ViewModel не подходит, потому что не имеет смысла, если вам нужно предоставить LoginViewModel в другом представлении, отличном от страницы входа.

Сохраните для меня предпочтение состоит в использовании общих предпочтений, и его очень просто реализовать. Вы можете использовать AndroidViewModel, если хотите сохранить значение общего предпочтения из ViewModel, поскольку AndroidViewModel предоставит Context, который можно использовать для создания общего предпочтения.

...