android glide4.3,java - Android, Glide 4.3.0: If you must do so, consider posting your into() or cle...

Android Studio 3.2, Glide 4.3.0

I need to custom handle situation when image is not load (e.g. when url is not correct or server doesn't response).

Here my code Fragment:

public static void loadImage(ImageView view, String imageUrl, GlideRoundedCornersTransformation.CornerType cornerType) {

RequestOptions requestOptionsTransform = RequestOptions.bitmapTransform(

new GlideRoundedCornersTransformation(view.getContext(), (int) AndroidUtil.dpToPx(view.getContext(),

view.getContext().getResources().getInteger(R.integer.image_rounded_corner_radius_dp)),

0, cornerType));

Glide.with(view.getContext())

.load(imageUrl)

.listener(new RequestListener() {

@Override

public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {

Glide.with(view.getContext()).load(R.drawable.default_image)

.apply(requestOptionsTransform)

.into(view));

return false;

}

@Override

public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {

view.setImageDrawable(resource);

return true;

}

})

.apply(requestOptionsTransform)

.into(view);

}

But I get this error:

FATAL EXCEPTION: main

Process: com.myproject.android.customer.debug, PID: 25205

java.lang.IllegalStateException: You can't start or clear loads in RequestListener or Target callbacks. If you must do so, consider posting your into() or clear() calls to the main thread using a Handler instead.

at com.bumptech.glide.request.SingleRequest.assertNotCallingCallbacks(SingleRequest.java:279)

at com.bumptech.glide.request.SingleRequest.clear(SingleRequest.java:296)

at com.bumptech.glide.manager.RequestTracker.clearRemoveAndRecycle(RequestTracker.java:62)

at com.bumptech.glide.RequestManager.untrack(RequestManager.java:443)

at com.bumptech.glide.RequestManager.untrackOrDelegate(RequestManager.java:430)

at com.bumptech.glide.RequestManager.clear(RequestManager.java:418)

at com.bumptech.glide.RequestBuilder.into(RequestBuilder.java:380)

at com.bumptech.glide.RequestBuilder.into(RequestBuilder.java:432)

at com.myproject.android.customer.util.CommonUtil$1.onLoadFailed(CommonUtil.java:69)

at com.bumptech.glide.request.SingleRequest.onLoadFailed(SingleRequest.java:592)

at com.bumptech.glide.request.SingleRequest.onLoadFailed(SingleRequest.java:572)

at com.bumptech.glide.load.engine.EngineJob.handleExceptionOnMainThread(EngineJob.java:259)

at com.bumptech.glide.load.engine.EngineJob$MainThreadCallback.handleMessage(EngineJob.java:291)

at android.os.Handler.dispatchMessage(Handler.java:105)

at android.os.Looper.loop(Looper.java:166)

at android.app.ActivityThread.main(ActivityThread.java:7377)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值