#android #android-glide
#Android #android-glide
Вопрос:
Я пытаюсь загрузить несколько изображений с сервера, используя 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
Комментарии:
1. Может ли помочь onLoadFailed()?
2. нет никакого метода обратного вызова onResourceFailed()..
3. onLoadFailed()?
4. @VirRajpurohit хорошо, но как отправить запрос снова..
Ответ №1:
Я предлагаю вам создать отдельный метод загрузки изображения через 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.
}
Ответ №2:
Если стратегии ошибки или резервного варианта вам не пригодятся, то в версии 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
Комментарии:
1. что произойдет, когда
fallbackUrl
запрос не удался?2. @code4rox Вы прочитали ссылку, которую вы загружаете в резервном варианте? Резервные чертежи отображаются, когда запрошенный URL / модель равна нулю. Основная цель резервных чертежей — позволить пользователям указывать, ожидается ли это. Например, пустой URL профиля может указывать на то, что пользователь не установил фотографию профиля и что следует использовать значение по умолчанию. Однако значение null также может указывать на то, что метаданные недействительны или не могут быть восстановлены. По умолчанию Glide обрабатывает нулевые URL-адреса / модели как ошибки, поэтому пользователи, ожидающие null, должны установить для резервного копирования Drawable.
3. Стратегии, показанные @Vir Rajpurohit, не нужны. Если вы загружаете изображения с URL-адресов, Glide может автоматически помочь вам справиться с ненадежными сетевыми подключениями, отслеживая состояние подключения пользователей и перезапуская неудачные запросы при повторном подключении пользователей. Если Glide обнаружит, что ваше приложение имеет ACCESS_NETWORK_STATE, Glide автоматически отслеживает состояние подключения, и никаких дальнейших изменений не требуется. Опять же, на основе официальной документации XD
4. Что касается мониторинга подключения, в некоторых случаях вам нужно провести пальцем, чтобы перезагрузить свой URL-адрес при восстановлении Интернета: bumptech.github.io/glide/doc /…