Синхронный асинхронный запрос с фильтром 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) { } });