简体   繁体   中英

How to request again if image download failed using glide

I'm try to download multiple images from server using the Glide

here is code

   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();
    }  

Code run perfectly but when the downloading image failed (any reason wifi disconnected or server not responding.etc) how to send the same request again??

or is there the better way download multiple images using Glide

I suggest you to make a separate method of loading image via glide.

Here is the pseudo code

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.
}

If error or fallback strategies are not useful to you, then in 4.3.0 version you can starting a new request on failure:

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

Learn more at https://bumptech.github.io/glide/doc/options.html#starting-a-new-request-on-failure

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM