Я использую библиотеку подкачки для загрузки даты прямо из сети. Должен ли я реализовать логику, чтобы прекратить получение данных? В моем случае это может быть, когда количество полученных элементов меньше размера страницы. В настоящее время, когда я дохожу до конца списка, библиотека продолжает загружать новые страницы.
Библиотека подкачки - не могу перестать загружать элементы
comment
Вы используете Room + DataSource.Factory с BoundaryCallback или источник данных с ключом элементов?
- person EpicPandaForce   schedule 20.07.2018
comment
@EpicPandaForce Я использую PageKeyedDataSource. Данные извлекаются напрямую из сети, не сохраняя их локально.
- person Rade   schedule 20.07.2018
Ответы (1)
Теоретически PageKeyedDataSource имеет обратный вызов результата,
PageKeyedDataSource.LoadCallback
И у этого есть метод onResult
, где в документации говорится
Передайте пустой список, если больше нет данных для загрузки.
Передайте ключ для загрузки следующей страницы в соседнийPageKey. Например, если вы загрузили страницу в loadBefore (LoadParams, LoadCallback), передайте ключ предыдущей страницы или null, если загруженная страница является первой. Если в loadAfter (LoadParams, LoadCallback), передайте ключ для следующей страницы или null, если загруженная страница является последней.
В нем говорится, что вы должны передать пустой список и null
для ключа соседней страницы, и это должно работать.
person
EpicPandaForce
schedule
21.07.2018
Я уже пробовал использовать пустой список, и он работает, но последний фрагмент данных не отображается в списке. Позвольте мне попробовать с нулевым значением в качестве смежногоPageKey.
- person Rade; 21.07.2018
Ага, вот и все. Спасибо.
- person Rade; 21.07.2018
Что делать, если в url-адресе нет номера страницы для передачи? @ EpicPandaForce @ Rade
- person Maulik Dodia; 22.08.2018
Что ж, если api разбивается на страницы, тогда вопрос в том, какой параметр вы можете отправить для этого. Если не можете, то пейджинга, вероятно, нет. Если вы получите полный набор данных, вы можете сохранить его на диск, а затем использовать позиционный источник данных (Room может его сгенерировать)
- person EpicPandaForce; 22.08.2018
Есть ли способ продолжить загрузку, даже если список пуст или меньше requestLoadSize? Размер моей страницы - 10, и если вызываемая мной конечная точка имеет менее 10 элементов, она загружается, останавливается и не вызывает следующую конечную точку. Я хотел бы продолжать вызывать конечные точки, даже если я получил список размером менее 10. Намек?
- person Soon Santos; 09.10.2018