Если вы можете поделиться своим кодом или как вы пришли к такому выводу, я, вероятно, мог бы помочь определить проблему немного лучше, но codelab действительно загружает данные из комнаты в ветке: step13-19_network_and_database
Здесь есть два компонента:
PagingSource
: предоставляется Room путем объявления @Query
с типом возвращаемого значения PagingSource
, создаст PagingSource
, загружаемый из Room. Эта функция вызывается в лямбде pagingSourceFactory
в Pager
, который ожидает новый экземпляр при каждом вызове.
RemoteMediator
: load()
вызывается при граничных условиях, когда в локальном кеше нет данных, это приведет к получить из сети и сохранить в базе данных Room, которая автоматически распространяет обновления для реализации PagingSource
, сгенерированной Room.
Еще одна проблема, с которой вы можете столкнуться, может быть связана с loadStateListener/Flow
, по сути, кодовая таблица показывает ошибку состояние, проверяя наличие CombinedLoadStates.refresh
, но это всегда относится к состоянию загрузки RemoteMediator
, когда доступно, и если вы хотите отображать локально кэшированные данные, даже при выходе RemoteMediator
ошибок, вам необходимо отключить скрытие список в этом случае.
Обратите внимание, что вы можете получить доступ к индивидуальному LoadState
с помощью CombinedLoadStates.source
или CombinedLoadStates.mediator
.
Надеюсь, этого достаточно, чтобы помочь вам, но трудно угадать ваш проблема без более конкретного примера / информации о том, что вы видите. основная проблема с библиотекой, которую я ищу здесь: https://android-review.googlesource.com/c/platform/frameworks/support/+/1341068
Edit2: Сейчас это исправлено и будет выпущено с alpha02.