Я использую Glide для загрузки изображений, и я добавил слушателя, чтобы узнать, когда ресурс готов или была ошибка любого типа:
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.glide_placeholder)
// use dontAnimate and not crossFade to avoid a bug with custom views
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
// do something
return true;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// do something
return true;
}
})
.into(mCustomImageView);
Приложение никогда не запускается внутри onResourceReady
или onException
, но если я удалю прослушиватель и скачаю асинхронную загрузку без обратного вызова, он будет работать правильно:
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.glide_placeholder)
// use dontAnimate and not crossFade to avoid a bug with custom views
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mCustomImageView);
Я попробовал также с GlideDrawableImageViewTarget
вместо прослушивателя получать обратные вызовы, но приложение запускается внутри onLoadStarted
, но никогда не запускается внутри onLoadCleared
, onLoadFailed
и onResourceReady
.