Я использую последнюю версию Retrofit. Я выполняю несколько запросов в действии и в методе onDestroy
, т. Е. Когда действие завершается, я хочу завершить все ожидающие запросы и, следовательно, я звоню okHttpClient.dispatcher().cancelAll()
.Android модифицирует неожиданное значение флага «отменено» в 'onFailure()' после отмены всех запросов
onFailure
метод запроса обрабатывается таким образом: -
@Override
public void onFailure(Call<APIResponseClass> call, Throwable t) {
if (call != null && !call.isCanceled()) {
// Call is not cancelled, Handle network failure
onNetworkFailure(call, t);
} else if (call != null && call.isCanceled()){
// Call is CANCELLED. IGNORE THIS SINCE IT WAS CANCELLED.
}
}
Проблема, я получаю неожиданное поведение в методе OnFailure. Несмотря на то, что звонок отменен через okHttpClient.dispatcher().cancelAll()
, отменен Флаг получен как false
, который должен был быть true
, то есть call.isCancelled()
должен был быть true
.
Однако переменная Throwable t
неожиданно посылают причину, как java.io.IOException: Отменена и detailMessage, как Отменен. Я добавил скриншот моего отладчика ...
Мой вопрос, если причина исключения определяется как отмена запроса, почему не отмененный флаг отображения должного результата ??
Я был referring to this link для отмены текущих запросов модернизированных ...
Пожалуйста, помогите.
Может ли это быть ошибкой в библиотеке Retrofit? Или я чего-то не хватает? Из ссылки, приведенной здесь https://futurestud.io/tutorials/retrofit-2-cancel-requests, они также используют для этого метод 'call.isCanceled()'. Если это ошибка, могу ли я поставить проблему в своем репозитории github? Мне нужны ваши предложения .... – oathkeeper