私はUsers
テーブル内のすべてのユーザからのいくつかのデータを取得したいです。私はData paging
を使用しなければならないことがわかった。 >https://backendless.com/feature-47-loading-data-objects-from-server-with-sorting/フィーチャー47-で説明したように、私は(私も をソートする必要があるため)同じコードを書いたが、その後、私はこのコードは最初のページからデータを取ることを考え出しました。次に、サイズがゼロに等しくないまで、次のページに移動して読む必要があると判断しました。私は、私が代わりにone.nextPage(this)
のAsyncCallbackでNEXTPAGEメソッドを使用する必要があることと思いますが、私はそうするならば、この方法は、ループに追いつくことができませんでしたすべてのページからデータを取得する方法は?
QueryOptions queryOptions = new QueryOptions();
List<String> list = new ArrayList<String>() ;
list.add("point DESC") ;
queryOptions.setSortBy(list);
BackendlessDataQuery backendlessDataQuery = new BackendlessDataQuery();
backendlessDataQuery.setQueryOptions(queryOptions);
Backendless.Data.of(BackendlessUser.class).find(backendlessDataQuery, new AsyncCallback<BackendlessCollection<BackendlessUser>>() {
@Override
public void handleResponse(BackendlessCollection<BackendlessUser> one) {
while(one.getCurrentPage().size()>0) {
Iterator<BackendlessUser> it = one.getCurrentPage().iterator();
while (it.hasNext()) {
//something here,not so important
}
one.nextPage(this);// here I want to get next page,
//but seems like it does not work, cause my loop became infinite
}
}
:以下、あなたは私の間違ったソリューションを見ることができます。では、私はどのようにして問題を解決できますか?
イベントを使用してみてください。基本的に、最初の呼び出しが完了したら、next_page_tokenを呼び出し側のクラスに渡します。そのトークンを使用して次のhttp要求を開始します。それはまた、あなたが、私は私がそれを必要とする理由 'getTotalObjects()'メソッドはtable.Butのレコードのすべての量を返すことを理解しましループ – Eenvincible