sto usando Glide per caricare le immagini e ho aggiunto un listener per sapere quando risorsa è pronta o se c'è stato un errore di qualsiasi tipo:Glide ascoltatore non funziona
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);
L'applicazione non viene eseguito all'interno onResourceReady
o onException
ma se tolgo l'ascoltatore e lasciare che l'async download senza una richiamata, viene eseguito correttamente:
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);
ho provato anche con GlideDrawableImageViewTarget
invece di chi ascolta per ricevere i callback, ma app funziona all'interno onLoadStarted
ma mai eseguito insid e onLoadCleared
, onLoadFailed
e onResourceReady
.
stai dicendo dell'ascoltatore onException e metodi onResourceReady non sono chiamati? Restituire true da questi metodi impedirà il richiamo del target, ma dovrebbero essere sempre chiamati per l'ascoltatore a prescindere. –
Penso che sia necessario chiamare 'submit' per iniziarlo a iniziare il caricamento –