LivePagedList выдает пустой списокJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 LivePagedList выдает пустой список

Сообщение Anonymous »

Я использую библиотеку подкачки из компонентов архитектуры Android.

Разбиение на страницы реализовано с помощью ItemKeyedDataSource

Код: Выделить всё

class MyDatasource(
private val queryMap: HashMap) : ItemKeyedDataSource() {

private val compositeDisposable: CompositeDisposable by lazy { CompositeDisposable() }

override fun loadInitial(params: LoadInitialParams, callback: LoadInitialCallback) {
compositeDisposable.add(
MyService.getService().fetchData(queryMap)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object : DisposableObserver() {
override fun onNext(orders: OrdersResponse) {
callback.onResult(orders.data)
}

override fun onError(e: Throwable) {
e.printStackTrace()
}

override fun onComplete() {

}
})
)
}

override fun loadBefore(params: LoadParams, callback: LoadCallback) {
// do nothing
}

override fun loadAfter(params: LoadParams, callback: LoadCallback) {
queryMap["offsetOrderId"] = params.key

compositeDisposable.add(
MyService.getService().fetchData(queryMap)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object : DisposableObserver() {
override fun onNext(orders: OrdersResponse) {
callback.onResult(orders.data)
}

override fun onError(e: Throwable) {
}

override fun onComplete() {
}
})
)
}

override fun getKey(item: Order): String {
return item.orderId
}
}
Я создаю список страниц в своей модели представления

Код: Выделить всё

class MyViewModel() : ViewModel() {
private var myPagingConfig: PagedList.Config? = null

var dataList: LiveData
>? = null

fun getOrders(params: HashMap) {

if (myPagingConfig == null) {
myPagingConfig = PagedList.Config.Builder()
.setPageSize(LIMIT)
.setPrefetchDistance(10)
.setEnablePlaceholders(false)
.build()
}

dataList = LivePagedListBuilder(MyDataFactory(
MyDatasource(params)), myPagingConfig!!)
.setInitialLoadKey(null)
.setFetchExecutor(Executors.newFixedThreadPool(5))
.build()
}
}
Однако, когда я наблюдаю dataList в своей деятельности, он иногда (в большинстве случаев) возвращает пустой список, тогда как в logcat я вижу, что данные были успешно получены. callback.onResult вызывается после того, как он возвращает пустой список, но наблюдатель больше никогда не получает уведомления.

Можете ли вы сказать мне, что может вызвать это? п>

Подробнее здесь: https://stackoverflow.com/questions/575 ... empty-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»