Синхронный асинхронный запрос с фильтром where()

Я использую последнюю версию Android SDK Syncano (4.0.6). Есть ли способ получить асинхронный запрос с параметрами?

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

Не имеет метода для асинхронного запуска.

Но

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

Который имеет функцию sendAsync(), но не имеет ограничения where().

Документы указывает:

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

Но я не вижу этого только в коде getAll().

1 ответ

Решение

Вы можете сделать асинхронный вызов при использовании пожалуйста (). Просто передайте объект 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) {

       }
   });

Вы правы, что метод async get () отсутствует при использовании where (). Это нужно исправить в библиотеке, но вы все равно можете сделать этот вызов, сохранив ссылку на 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) {

       }
   });
Другие вопросы по тегам