Каждый запрос на сервер может возвращать error_code
. Я хочу, чтобы обрабатывать эти ошибки в одном месте , когда я использовал AsyncTask у меня был BaseAsyncTask как тотДооснащение и централизованная обработка ошибок
public abstract class BaseAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> {
protected Context context;
private ProgressDialog progressDialog;
private Result result;
protected BaseAsyncTask(Context context, ProgressDialog progressDialog) {
this.context = context;
this.progressDialog = progressDialog;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Result result) {
super.onPostExecute(result);
HttpResponse<ErrorResponse> response = (HttpResponse<ErrorResponse>) result;
if(response.getData().getErrorCode() != -1) {
handleErrors(response.getData());
}else
onResult(result);
}
private void handleErrors(ErrorResponse errorResponse) {
}
public abstract void onResult(Result result);
}
Но, используя переоснащения каждый запрос имеет свою обработку ошибок обратного вызова:
git.getFeed(user,new Callback<gitmodel>() {
@Override
public void success(gitmodel gitmodel, Response response) {
}
@Override
public void failure(RetrofitError error) {
}
});
}
});
Как я могу обрабатывать все ошибки в одном месте?
вы можете создать объект обратного вызова для использования в качестве общего обратного вызова. –