1) По первому вопросу, я полагаю, мы должны следовать наилучшей практике для вашей проблемы с хранилищем. просто, Это нормально , но вы должны реализовать это в наилучшей практике, как я уже сказал. Следуя принципу Единый источник истины , вы можете использовать базу данных своей комнаты в качестве единственного источника данных, и как только вы получите данные из базы данных, вы можете запросить данные с сервера и добавить эти данные в свой локальный каталог. база данных. Потому что, возможно, происходит сбой сети, поэтому кеш здесь работает нормально и дает лучший пользовательский опыт. Проверьте упомянутую выше гиперссылку на официальную документацию, а также проверьте это видео .
2) Я использую RXJava2 с базой данных Room. Я считаю, что это работает нормально, я поделюсь с вами этими 2 статьями, которые обсуждали, как применять RXJava2 с Room Article 1 Article 2
Но вы также можете использовать LiveData в ваших запросах.
Примечание : я не рекомендую использовать Asyn c Task, потому что согласно официальной документации это не устарело.