1

我正在使用 Syncano 最新的 Android SDK (4.0.6)。有没有办法使用参数进行异步查询?

Syncano.please(User.class).where()

没有异步运行它的方法。

Syncano.getInstance().getObjects(User.class)

其中有 'sendAsync()' 但没有 'where()' 约束。

文档指定:

Syncano.please(User.class).getAsync(callback);

但我没有在代码中看到它只有 getAll()。

4

1 回答 1

3

使用 please() 时可以进行异步调用。只需传递 SyncanoCallback 对象。

   Syncano.please(Item.class).get(new SyncanoListCallback<Item>() {
       @Override
       public void success(ResponseGetList<Item> response, List<Item> result) {

       }

       @Override
       public void failure(ResponseGetList<Item> response) {

       }
   });

没错,使用 where() 时缺少异步 get() 方法。它必须在库中修复,但无论如何您都可以进行此调用,保存对 RequestBuilder 的引用。

   RequestBuilder<Item> please = Syncano.please(Item.class);
   please.where().eq(Item.COLUMN_NUMBER, 11);
   please.get(new SyncanoListCallback<Item>() {
       @Override
       public void success(ResponseGetList<Item> response, List<Item> result) {

       }

       @Override
       public void failure(ResponseGetList<Item> response) {

       }
   });

您也可以使用 where(),而不使用 please()。它看起来像这样:

   Where<Item> where = new Where<>();
   where.eq(Item.COLUMN_NUMBER, 11);
   Syncano.getInstance().getObjects(Item.class).setWhereFilter(where).sendAsync(new SyncanoListCallback<Item>() {
       @Override
       public void success(ResponseGetList<Item> response, List<Item> result) {

       }

       @Override
       public void failure(ResponseGetList<Item> response) {

       }
   });
于 2016-02-29T14:29:27.143 回答