Как обновить состояние сети и данные одновременно при работе с Paging Library - PullRequest
0 голосов
/ 05 декабря 2018

Я сейчас работаю с Paging Library и Room, но у меня проблемы с обновлением состояния сети и списка одновременно.Сценарий в моем проекте такой же, как и PagingWithNetworkSample , в случае использования DbRedditPostRepository .

Пользовательский интерфейс наблюдает Listing.networkState (SubredditBoundaryCallback.networkState) для обновления состояния загрузки и наблюдения Listing.pagedList и отправки его в PagedListAdapter для обновления данных.

При прокрутке вниз по RecyclerView и полученному ответу происходит следующеезаказ для большинства случаев.

  1. Обратный звонокПолучаем.уведомленные Listing.networkState и удаляют значок загрузки .
  2. Через короткое, но заметное время, обновление базы данных приводит к тому, что DataSource был признан недействительным, а данные добавлены в RecyclerView.

Из-за разницы во времени между загрузкой обновлений и данными пользовательский интерфейс ведет себя как this , RecyclerView прокручивается вниз, когда загрузка удаляется, а затем добавляет данные, поэтому новые данные не видны.

Я пытаюсь заархивировать файл, чтобы обновить состояние сети и данные одновременно, поэтому пользовательский интерфейс может работать как this .

Подумайте о

  1. Обновите состояние сети, когда уведомление об изменении данных будет получено, но изменение данных может не произойти, если все данные являются дубликатами, а также сложно установить соединение с состоянием сетис правильным обновлением данных, если есть несколько обновлений.
  2. Запишите данные, пока состояние сети, в БД и получите уведомление в то же время, это должно работать, но довольно уродливо, и это будет мой последний выбор.

Будем благодарны за любые мысли.

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