我正在尝试从 android 架构组件中实现新的分页库。基本功能工作正常,但我需要为loadRange()
or添加重试功能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>());
}
}
...
}