Я должен открыть активность входа в систему, если сервер возвращает ошибку 401,
вместо перехвата типа ошибки при любом вызове, подобном этому, возможно ли централизовать управление ошибками в уникальной точке?
@Override
public void onErrorResponse(VolleyError error) {
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(context,
context.getString(R.string.error_network_timeout),
Toast.LENGTH_LONG).show();
} else if (error instanceof AuthFailureError) {
//TODO
} else if (error instanceof ServerError) {
//TODO
} else if (error instanceof NetworkError) {
//TODO
} else if (error instanceof ParseError) {
//TODO
}
}
я попытался реализовать мою пользовательскую ретриполицию
@Override
public void retry(VolleyError error) throws VolleyError {
//HTTP 401 and 403
if (error instanceof AuthFailureError) {
AuthFailureError er = (AuthFailureError) error;
//HTTP 401
if (er.networkResponse.statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {
Intent intent = new Intent(context, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
}
else {
request.deliverError(er);
}
}
}
но ошибка 401 по-прежнему передается в событие onErrorResponse.