Я использую мультиплатформенную пьесу Cash App (в которой используется подкрепление Androidx для большинства вещей под капотом) с помощью Compose для загрузки нанесенных на ногам данных из комнаты DB.
Все работает нормально, но единственная проблема - когда данные добавляются данные в комнате на заднем плане, а нагрузка (обновление = загрузка). < /p>
У нас есть фоновая служба, которая синхронизирует данные каждые несколько минут и сохраняет их в комнате db один за другим. Если я введу экран, который собирает ленивые элементы, пока служба синхронизирует данные, я вообще не получаю никаких начальных данных, пока не завершится синхронизация, а состояние обновления не загружается. Иногда ему повезло, и существует задержка между каждой вставкой в процессе синхронизации, и он загружает данные, но большую часть времени это не так. Затем начинается синхронизация, это дает мне новые данные обычно. Проблема в том, когда я ввожу во время синхронизации.
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
class GetFilteredItemsUseCase(
private val itemsRepository: ItemsRepository,
) {
operator fun invoke(
filter: List? = null,
): Flow = Pager(
PagingConfig(
pageSize = 50,
initialLoadSize = 50,
prefetchDistance = 10,
)
) {
itemsRepository.getFilteredItems(filter = filter)
}.flow
}
< /code>
и в dao < /p>
@RawQuery(observedEntities = [ItemEntity::class])
fun getFilteredItems(query: RoomRawQuery) : PagingSource
Подробнее здесь: https://stackoverflow.com/questions/794 ... refreshing
Android Paging 3 с комнатой, не загружающей начальные данные при освежении ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение