RetrofitCallback
call.enqueue(new Callback<TngouNewsModel>() {
@Override
public void onResponse(Call<TngouNewsModel> call, Response<TngouNewsModel> response) {
}
@Override
public void onFailure(Call<TngouNewsModel> call, Throwable t) {
}
});
一个标准Callback是这样的,在实际开发中我们还是要在onResponse加额外逻辑代码判断是否成功返回,于是有了以下的封装。
public abstract class RetrofitCallback<M> implements Callback<M> {
public abstract void onSuccess(M model);
public abstract void onFailure(int code, String msg);
public abstract void onThrowable(Throwable t);
public abstract void onFinish();
@Override
public void onResponse(Call<M> call, Response<M> response) {
if (response.isSuccessful()) {
onSuccess(response.body());
} else {
onFailure(response.code(), response.errorBody().toString());
}
onFinish();
}
@Override
public void onFailure(Call<M> call, Throwable t) {
onThrowable(t);
onFinish();
}
}
在onResponse加了判断是否成功返回。我们把它用到我们的工程上
call.enqueue(new RetrofitCallback<TngouNewsModel>() {
@Override
public void onSuccess(TngouNewsModel model) {
}
@Override
public void onFailure(int code, String msg) {
}
@Override
public void onThrowable(Throwable t) {
}
@Override
public void onFinish() {
}
});
回调一目了然了。