Я сейчас работаю с Paging Library и Room, но у меня проблемы с обновлением состояния сети и списка одновременно.Сценарий в моем проекте такой же, как и PagingWithNetworkSample , в случае использования DbRedditPostRepository .
Пользовательский интерфейс наблюдает Listing.networkState (SubredditBoundaryCallback.networkState) для обновления состояния загрузки и наблюдения Listing.pagedList и отправки его в PagedListAdapter для обновления данных.
При прокрутке вниз по RecyclerView и полученному ответу происходит следующеезаказ для большинства случаев.
- Обратный звонокПолучаем.уведомленные Listing.networkState и удаляют значок загрузки .
- Через короткое, но заметное время, обновление базы данных приводит к тому, что DataSource был признан недействительным, а данные добавлены в RecyclerView.
Из-за разницы во времени между загрузкой обновлений и данными пользовательский интерфейс ведет себя как this , RecyclerView прокручивается вниз, когда загрузка удаляется, а затем добавляет данные, поэтому новые данные не видны.
Я пытаюсь заархивировать файл, чтобы обновить состояние сети и данные одновременно, поэтому пользовательский интерфейс может работать как this .
Подумайте о
- Обновите состояние сети, когда уведомление об изменении данных будет получено, но изменение данных может не произойти, если все данные являются дубликатами, а также сложно установить соединение с состоянием сетис правильным обновлением данных, если есть несколько обновлений.
- Запишите данные, пока состояние сети, в БД и получите уведомление в то же время, это должно работать, но довольно уродливо, и это будет мой последний выбор.
Будем благодарны за любые мысли.