You can combine the retrofit requests with an event bus and have a clean and centralised point for handling your responses.
All you need to do is define a Composed object like this:
public class GetUsers {
// Retrofit Request
public static final class Request {}
// Retrofit Callback
public static final class Callback
implements retrofit.Callback<Response response> {
@Override
public void success(Response response,
Response retrofitResponse) {
// .... handle the code
BusManager.post(new Event());
}
@Override
public void failure(RetrofitError error) {}
BusManager.post(new RetrofitErrorEvent(error));
}
// Otto Event
public static final class Event {}
This object defines the Request, Callback and Event and this object is feed to the retrofit request.
public void getUsers(){
request.users(new GetUsers.Request(), new GetUsers.Callback());
}
After this, in your main class looks like this:
public void onResume(){
controller.getUsers();
}
@Subscribe
public void onGetPostsEvent(GetPosts.Event event){
textView.setText(event.getText());
}
For a more detailed explanation check this blog post:
Otto + Retrofit – An elegant solution for Web Requests and you can find a working example here