Glide 4.11.0版本在访问失败的情况下,会二次重试

阅读: 评论:0

Glide 4.11.0版本在访问失败的情况下,会二次重试

Glide 4.11.0版本在访问失败的情况下,会二次重试

1.  背景

项目使用Glide作为图片加载控件,自定义ModelLoader

2. 问题

在自定义DataFetcher中,发现loadData在失败时,再自动调用这个方法,因此被加载了2次;

原先是在这边添加失败重试的,现在是导致多次调用,重试多次。

3. 排查

3.1在自定义ModelLoader添加log

 发现这个方法被调用2次,即加载的任务被加载到队列有2次。

3.2 对比图片加载成功和失败

  在成功加载时,在自定义DataFetcher的方法loadData只被调用一次,而在网络访问失败时,发现loadData有2次调用,第二次调用是紧跟着第一次失败后调用;

  自定义DataFetcher的构造方法也被调用2次,说明有2次new出来的对象;方法cleanup也被调用了2次

3.3 Glide内部流程分析

里面有个8个loader,其中HttpUriLoader和UrlUriLoader都进入自定义的modelLoader.buildLoadData。

猜测是注册时替换系统预先注册的这个2个modelloader,然后在失败的时候:

fetchers有2个,在失败时,在fetchers的数组中,会进入第二个loader去loadData去。

解决:

使用glide最新的版本 4.12.0版本不会出现这个问题。

本文发布于:2024-02-04 22:42:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170718033460366.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:重试   情况下   版本   Glide
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23