Glide Version: 4.2.0
Device/Android Version: 7.0
Error : You can't start or clear loads in RequestListener or Target callbacks.
Code:
GlideApp.with(activity)
.load(transformUrl)
.centerCrop()
.thumbnail(0.1f)
.transition(new DrawableTransitionOptions().transition(v -> {
v.setScaleY(0);
v.setScaleX(0);
v.animate()
.scaleY(1)
.scaleX(1)
.setDuration(600)
.setInterpolator(INTERPOLATOR)
.start();
}))
.listener(
new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@android.support.annotation.Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
CUtils.Log(e.getCauses() + " " + e.getMessage());
GlideApp.with(activity)
.load(turingPic.getUrl() + Constant.PIC_QUALITY_LIST)
.centerCrop()
.thumbnail(0.1f)
.transition(new DrawableTransitionOptions().transition(v -> {
v.setScaleY(0);
v.setScaleX(0);
v.animate()
.scaleY(1)
.scaleX(1)
.setDuration(600)
.setInterpolator(INTERPOLATOR)
.start();
}))
.into(view);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
}
)
.into(view);
How could Glide reload other url when onLoadFailed call ??? Please help, thanks!
Follow the suggestion in the exception message and post a Runnable to the main thread that starts your request:
Handler handler = new Handler();
...
@Override
public boolean onLoadFailed(@android.support.annotation.Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
handler.post(new Runnable() {
@Override
public void run() {
Glide.with(...)
}
}
};
In 4.3.0 or the snapshot, you can use error() instead.
This issue has been automatically marked as stale because it has not had activity in the last seven days. It will be closed if no further activity occurs within the next seven days. Thank you for your contributions.
Most helpful comment
Follow the suggestion in the exception message and post a Runnable to the main thread that starts your request:
In 4.3.0 or the snapshot, you can use
error()instead.