以块(小部分)的形式从 Backendless 加载数据

load data from Backendless in chunks (small parts)

我正在尝试找出我的问题的答案,我正在从 backendless 异步。

代码:

BackendlessDataQuery dataQuery = new BackendlessDataQuery();
dataQuery.setPageSize(10); // here am setting the page size (10 items to load at a single fetch )
dataQuery.setWhereClause(whereClause);

Backendless.Data.of(Note.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Note>>() {
    @Override
    public void handleResponse(BackendlessCollection<Note> notes) {
        //here i got the first 10 objects from Note Table
    }

    @Override
    public void handleFault(BackendlessFault fault) {
        swipeToReload.setRefreshing(false);
        Toast.makeText(getContext(), "" + fault.getMessage(), Toast.LENGTH_LONG).show();
    }
});

所以现在我想知道如何分块加载数据,Button 作为 RecylerView 的页脚(这里填充我获取的数据)但我不知道如何我会那样做,我在脑海中想象的是 "U have to fetch the data by telling server. The index of desired data like on first request fetch the data from 1 to 10 on next request fetch the data from 11-20 and so on."

但是,如果我们从 21-30 请求数据(它的第 3 个请求)并且创建了一些新数据(在第一个索引中),那么我们将如何加载这些数据呢?我们必须从一开始就加载所有内容吗??请指正。

成功了:

public class MyForm {
    final DataHandler dataHandler;
    BackendlessCollection<Note> data;

    MyForm() {
        dataHandler = new DataHandler(this);
    }

    void setData(BackendlessCollection<Note> data) {
        this.data = data;
        //render new set of data
    }

    //'Fetch Data' Button click handler
    public void fetchData() {
        BackendlessDataQuery dataQuery = new BackendlessDataQuery();
        dataQuery.setPageSize(10);

        Backendless.Data.of(Note.class).find(dataQuery, dataHandler);
    }

    //'Next Page' Button click handler
    public void fetchNext() {
        data.nextPage(dataHandler);
    }

    void setError(BackendlessFault fault) {
        //swipeToReload.setRefreshing(false);
        //Toast.makeText(getContext(), "" + fault.getMessage(), Toast.LENGTH_LONG).show();
    }

    class DataHandler implements AsyncCallback<BackendlessCollection<Note>> {
        final MyForm form;

        DataHandler(MyForm form) {
            this.form = form;
        }

        public void handleResponse(BackendlessCollection<Note> notes) {
            form.setData(notes);
        }

        public void handleFault(BackendlessFault fault) {
            form.setError(fault);
        }
    }
}