Повторная попытка библиотеки подкачки Android loadRange () или loadAfter () - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь реализовать новую библиотеку подкачки из компонентов архитектуры 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>());
        }
    }

    ...
}
...