Я пытаюсь настроить все свои списки, используя новые компоненты архитектуры Android: Room Persistance Library и библиотека подкачки. Но я столкнулся со следующей проблемой. Представьте себе приложение, в котором есть множество разных списков одной и той же модели. Каждый список имеет свой собственный URL-адрес запроса к серверу. Некоторые элементы могут повторяться в разных ответах. Поэтому я думаю, что мне нужно вставлять и обновлять все элементы каждого ответа в таблицу этой модели. Кроме того, у каждого запроса есть страницы. Например, elements/famous/0
, elements/famous/1
. Итак, когда получен ответ страницы 1, список, содержащий элементы списка 0, должен добавить элементы, возвращенные страницей 1.
Запрос комнаты, который возвращает LivePagedListProvided, выглядит следующим образом:
@Query("SELECT * FROM elements")
fun getElements(): LivePagedListProvider<Int, Model>
Когда какой-либо элемент запроса изменяется или элемент, добавленный в базу данных, влияет на запрос, наблюдаемые LivePagedListProvider
обеспечивают изменение, поэтому пользовательский интерфейс изменяется автоматически.
Вопрос в том, как мне сохранять и извлекать элементы, которые могут содержаться в разных списках, в зависимости от разных запросов с использованием библиотеки подкачки?