Шаблон для уведомления Активность кода состояния сети - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть много действий, которые имеют несколько фрагментов.Часть работы, выполняемой этими фрагментами, заключается в совершении сетевых вызовов с проверкой подлинности.Возможно, срок действия токена истечет.Когда это произойдет, я увижу 401 на сетевом уровне.Каков предпочтительный метод для обратной связи в стеке с тем, какой фрагмент инициировал сетевую активность, необходимую для запуска процедуры выхода из системы?Другими словами, когда сетевой уровень получает 401, я хочу сообщить об этом обратно в пользовательский интерфейс, что пользователь должен быть поврежден в журнале, хотя с тех пор, возможно, также были вызваны многие другие действия.Это часто делается с помощью пользовательских исключений, обрабатываемых в приложении, но мне было интересно, существует ли какой-то конкретный шаблон, который предпочтительнее, чем этот.Возможно, что-то с использованием Live Data?

1 Ответ

0 голосов
/ 15 февраля 2019

Вы должны разделиться на слои.Каждый слой должен отвечать за одну задачу.Есть много способов сделать это, но вы можете использовать подход MVVM Google, который заключается в следующем:

  • M (модель) : классы данных и репозитории, которые их сохраняют / извлекают.
  • V (Просмотр) : действия / фрагменты, которые наблюдают объекты данных (LiveData), выставленные виртуальной машиной, а также вызывают действия виртуальной машины.
  • VM (ViewModel) : выставляет действия, например, login, внутренне вызывает репозиторий, который вызывает API (например, используя Retrofit2), когда он получает результат, он обновляет объекты данных, наблюдаемые V.

Посмотрите:

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