Как использовать ROOM и Retrofit на Android? - PullRequest
0 голосов
/ 08 марта 2020

Я новичок в этих android вещах, и я начал изучать MVVM и как использовать ROOM и Retrofit.

И здесь у меня два вопроса:

  1. Можно ли использовать один и тот же класс Repository для запросов на модернизацию и ROOM SQLLite DB? Я спрашиваю об этом, потому что я хочу реализовать приложение, в котором мне нужно хранить некоторые данные локально, но также мне нужен сервер для обработки этого.

  2. Здесь у меня вопрос о ROOM с LiveData ... точнее, мне нужен небольшой совет о том, как я могу реализовать get или запрос ... Я начал использовать LiveData, но мне удалось реализовать только функцию getAll ... как getAllUsers и для простых Функция, в которой мне нужен только определенный c пользователь, например getUserById, я реализовал обычным способом, используя AsyncTask, поэтому без LiveData. У меня вопрос ... Хорошо ли делать запросы без LiveData? Если ответ «да», мне больше не нужны объяснения, но если ответ «НЕТ», может кто-нибудь дать мне совет, как мне это сделать?

1 Ответ

1 голос
/ 08 марта 2020

1) По первому вопросу, я полагаю, мы должны следовать наилучшей практике для вашей проблемы с хранилищем. просто, Это нормально , но вы должны реализовать это в наилучшей практике, как я уже сказал. Следуя принципу Единый источник истины , вы можете использовать базу данных своей комнаты в качестве единственного источника данных, и как только вы получите данные из базы данных, вы можете запросить данные с сервера и добавить эти данные в свой локальный каталог. база данных. Потому что, возможно, происходит сбой сети, поэтому кеш здесь работает нормально и дает лучший пользовательский опыт. Проверьте упомянутую выше гиперссылку на официальную документацию, а также проверьте это видео .

2) Я использую RXJava2 с базой данных Room. Я считаю, что это работает нормально, я поделюсь с вами этими 2 статьями, которые обсуждали, как применять RXJava2 с Room Article 1 Article 2

Но вы также можете использовать LiveData в ваших запросах.

Примечание : я не рекомендую использовать Asyn c Task, потому что согласно официальной документации это не устарело.

...