2013-06-10 32 views
28

Là nhà phát triển iOS bắt đầu làm việc với Android, tôi đã xem qua trang bị thêm. Tôi hiểu cách triển khai các yêu cầu đồng bộ nhưng gặp sự cố khi triển khai các yêu cầu không đồng bộ với các cuộc gọi lại thành công/thất bại. Cụ thể, cú pháp gọi lại không rõ ràng với tôi và không có ví dụ cụ thể về cách thực hiện điều này trên trang Retrofit website, Square blogpost giới thiệu trang bị thêm hoặc những nơi khác mà tôi đã xem. Ai đó có thể xin vui lòng gửi một số mã ví dụ về điều này? Tôi đã gửi một vấn đề trong Repo reprofit yêu cầu họ cập nhật README với thông tin này.Cách triển khai Gọi lại không đồng bộ bằng thư viện mạng Retrofit của Square

Trả lời

54

Sau một số nghiên cứu khác và chỉ đơn giản là dành nhiều thời gian hơn trong thế giới Android/Java, tôi đã tìm ra điều này, sử dụng ví dụ từ tài liệu của họ.

Interface:

@GET("/user/{id}/photo") 
void listUsers(@Path("id") int id, Callback<Photo> cb); 

Thực hiện:

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

Đừng quên gọi setExecutors() khi tạo restAdapter của bạn. – SeanPONeil

+4

@SeanPONeil bạn chỉ cần đặtExecutors() khi bạn muốn cuộc gọi lại xảy ra ngoài chuỗi chính. – gkee

+0

Không phải lúc tôi đăng bài đó. Quảng trường được thêm mặc định sane cho các nhà thực thi. – SeanPONeil

Các vấn đề liên quan