Как запросить еще раз, если загрузка изображения не удалась с помощью glide - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь загрузить несколько изображений с сервера, используя Glide

, вот код

   for (String url : list) {
        RequestOptions requestOptions = RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.ALL);

        Glide.with(this)
                .asBitmap()
                .load(url).addListener(new RequestListener<Bitmap>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
                return false;
            }

            @Override
            public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
                Log.e("ProgressCheck", "onResourceReady: " + progress);

                return false;
            }
        })
                .apply(requestOptions)
                .submit();
    }  

Код работает отлично, но когда загрузка изображения не удалась (по какой-либо причине Wi-Fi отключен или сервер не отвечает. и т.д.) как отправить тот же запрос еще раз ??

или есть лучший способ загрузить несколько изображений, используя Glide

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Если ошибка или отступление стратегии вам не нужны, то в версии 4.3.0 вы можете запустить новый запрос при ошибке:

Glide.with(fragment)
  .load(url)
  .error(
      Glide.with(fragment)
        .load(url))
        .into(imageView);

Узнайте больше на https://bumptech.github.io/glide/doc/options.html#starting-a-new-request-on-failure

0 голосов
/ 24 апреля 2019

Я предлагаю вам сделать отдельный способ загрузки изображения с помощью glide.

Вот псевдокод

private void loadImage(String URL){
// Your Glide code
//Inside onLoadFailed call loadImage() again.
//For number of attempts you can maintain one int and increment that on every attempt.
}
...