Ниже приведен код, вырезанный из моего приложения для Android.
onError вызывается также onStateChanged вызывается через некоторое время,
Я получаю ошибку
Запрошенный диапазон не является удовлетворительным (услуга: Amazon S3; код состояния: 416
Пожалуйста, поделитесь своим мнением, если кто-то испытывал подобное поведение.
observer.setTransferListener(new TransferListener() {
@Override
public void onStateChanged(int i, TransferState transferState) {
Log.d("AWS download state", transferState.toString());
if (transferState == TransferState.COMPLETED) {
downloadCallBack.OnDownloadCompleteSuccess(filename);
}
}
@Override
public void onProgressChanged(int i, long l, long l1) {
Log.d("progress Change", "Dummy logging");
}
@Override
public void onError(int i, Exception e) {
Log.e("aws error", e.toString());
try {
Toast.makeText(gCtx, "Error! Please try again.", Toast.LENGTH_SHORT).show();
}catch (Exception e1){
Log.e("error",e1.getLocalizedMessage().toString());
}
}
});
@PraveenRawat, какова уместность этого вопроса в этом контексте?
из-за проблемы с кешем у меня есть реализация, но она работает.
@PraveenRawat Мой вопрос: если вызывается onError, почему вызывается onStateChanged?
@SreekanthKarumanaghat Что такое transferState при вызове onStateChanged?
При возникновении ошибки во время задачи загрузки / выгрузки SDK вызывает обратный вызов onError с соответствующим объектом исключения. В дополнение к этому onStateChanged вызывается с TransferState.FAILED. Следовательно, вы получаете оба обратных вызова.
Вы очищаете прослушиватель передачи @ на паузе или где угодно