Как разработчик iOS, начинающий работать с Android, я наткнулся на «Дооснащение». Я понимаю, как реализовать синхронные запросы, но у меня возникают проблемы с внедрением асинхронных запросов с обратными вызовами успеха/отказа. В частности, синтаксис Callback не ясен для меня, и нет конкретных примеров того, как это сделать на Retrofit website, Square blogpost, представляющий Retrofit или в другом месте, которое я видел. Может кто-нибудь, пожалуйста, напишите какой-нибудь пример кода на этом? Я зарегистрировал проблему в репозитории Retrofit с просьбой обновить README этой информацией.Как реализовать асинхронный обратный вызов, используя сетевую библиотеку Square's Retrofit
28
A
ответ
54
После нескольких исследований и просто тратить больше времени в мире Android/Java, я понял это, используя пример из своих документов.
Интерфейс:
@GET("/user/{id}/photo")
void listUsers(@Path("id") int id, Callback<Photo> cb);
Реализация:
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer("baseURL")
.build();
ClientInterface service = restAdapter.create(ClientInterface.class);
Callback callback = new Callback() {
@Override
public void success(Object o, Response response) {
}
@Override
public void failure(RetrofitError retrofitError) {
}
};
service.listUsers(666, callback);
Не забудьте позвонить setExecutors() при создании restAdapter. – SeanPONeil
@SeanPONЕсли вам нужно только установитьExecutors(), если вы хотите, чтобы обратный вызов также выполнялся с основного потока. – gkee
Не в то время, когда я опубликовал это. Квадрат добавил нормальные значения для исполнителей. – SeanPONeil