Skip to content

Instantly share code, notes, and snippets.

@snadjafi
Created August 28, 2014 20:49
Show Gist options
  • Save snadjafi/574c2342e3b4452c27c8 to your computer and use it in GitHub Desktop.
Save snadjafi/574c2342e3b4452c27c8 to your computer and use it in GitHub Desktop.
retrofit cancelableCallbacks for fragment use
public class CancelableCallback<T> implements Callback<T> {
private Callback<T> callback;
private boolean canceled;
public CancelableCallback(Callback<T> callback) {
this.callback = callback;
canceled = false;
}
public void cancel() {
canceled = true;
callback = null;
}
@Override public void success(T t, Response response) {
if (!canceled) {
callback.success(t,response);
}
}
@Override public void failure(RetrofitError error) {
if (!canceled) {
callback.failure(error);
}
}
}
public class Example extends Fragment {
private CancelableCallback<Model> mCallback = new CancelableCallback<Visit>(new Callback<Model>() {
@Override public void success(Model visit, Response response) {
}
@Override public void failure(RetrofitError error) {
});
@Override public void onDestroy() {
super.onDestroy();
mCallback.cancel();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment