Я использую AndroidX Paging для загрузки данных страницы. в нормальной ситуации это здорово. но при некоторых условиях, таких как ошибка сети, исключение, сбой загрузки данных. Я хочу загрузить данные на номер страницы с ошибкой. и он вызывается в других классах, а не в методе DataSource loadAfter
.
только в примере Google paging это да, это плохо. в нормальной ситуации мы не будем этого делать. мы часто позволяем пользователям загружать их снова.
// this is the google sample code
if (response.isSuccessful) {
val data = response.body()?.data
val items = data?.children?.map { it.data } ?: emptyList()
retry = null
callback.onResult(items, data?.after)
networkState.postValue(NetworkState.LOADED)
} else {
retry = {
loadAfter(params, callback)
}
networkState.postValue(
NetworkState.error("error code: ${response.code()}"))
}
Я читаю исходный код, один из способов, которым я хочу использовать callback.onReslult
, пропуская пустой список, чтобы мой loadAfter мог работать. Но PagedStorage останавливает его, когда размер равен нулю.
void appendPage(@NonNull List<T> page, @NonNull Callback callback) {
final int count = page.size();
if (count == 0) {
// Nothing returned from source, stop loading in this direction
return;
}
}
Может кто-нибудь дать мне какое-нибудь решение?