2013-06-10 13 views
28

Как разработчик iOS, начинающий работать с Android, я наткнулся на «Дооснащение». Я понимаю, как реализовать синхронные запросы, но у меня возникают проблемы с внедрением асинхронных запросов с обратными вызовами успеха/отказа. В частности, синтаксис Callback не ясен для меня, и нет конкретных примеров того, как это сделать на Retrofit website, Square blogpost, представляющий Retrofit или в другом месте, которое я видел. Может кто-нибудь, пожалуйста, напишите какой-нибудь пример кода на этом? Я зарегистрировал проблему в репозитории Retrofit с просьбой обновить README этой информацией.Как реализовать асинхронный обратный вызов, используя сетевую библиотеку Square's Retrofit

ответ

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); 
+3

Не забудьте позвонить setExecutors() при создании restAdapter. – SeanPONeil

+4

@SeanPONЕсли вам нужно только установитьExecutors(), если вы хотите, чтобы обратный вызов также выполнялся с основного потока. – gkee

+0

Не в то время, когда я опубликовал это. Квадрат добавил нормальные значения для исполнителей. – SeanPONeil

 Смежные вопросы

  • Нет связанных вопросов^_^