Я пытаюсь реализовать новую библиотеку подкачки из компонентов архитектуры Android.Основные функции работают нормально, но мне нужно добавить функцию повтора для loadRange()
или loadAfter()
.Мне нужно повторить их в случае возникновения сетевой ошибки или если устройство отключено.Я уже попробовал dataSource.invalidate()
, который выбрасывает весь источник данных, который кажется пустой тратой.Есть ли способ сделать это?
Вот мой код:
public class MyDataSource extends PositionalDataSource<Item> {
...
@Override
public void loadInitial(@NonNull LoadInitialParams params, @NonNull LoadInitialCallback<Item> callback) {
ArrayList<Item> items = executeCall(1, params.requestedLoadSize);
if (items != null) {
callback.onResult(items, 0, totalCount);
} else {
callback.onResult(new ArrayList<Item>(), 0);
}
}
@Override
public void loadRange(@NonNull LoadRangeParams params, @NonNull LoadRangeCallback<Item> callback) {
ArrayList<Item> items = executeCall(params.startPosition, params.loadSize);
if (items != null) {
callback.onResult(items);
} else {
callback.onResult(new ArrayList<Item>());
}
}
...
}