1、使用官方提供的api实现Glide.error(),弊端:递归调用会出现无限调用的情况。

2、

(1)设置监听器

 Glide.listener(new RequestListener<Drawable>() {@Overridepublic boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target,boolean isFirstResource) {//图片加载失败}@Overridepublic boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,DataSource dataSource, boolean isFirstResource) {//图片加载成功}}

在两个回调函数中设置是否加载成功的标志位。

(2)开启线程去轮询当前图片的加载状态,并更新UI。

public interface TimeOutListener {void onTimeout(boolean isTimeout);
}private TimeOutListener timeOutListener;public void setTimeOutListener(TimeOutListener timeOutListener) {this.timeOutListener = timeOutListener;}@Overridepublic void onTimeout(boolean isTimeout) {// 监听超时状态Log.d(TAG, "-----" + isTimeout);executor.execute(() -> {//设置超时时间为20秒while ((endTime - startTime) < 20 * 1000) {if (isTimeout) {endTime = System.currentTimeMillis();SystemClock.sleep(2000);runOnUiThread(() -> {if (cutDownTimeout) {return;}if (loadPhoTimes == 0) {} else {//重新加载图片loadSplashPho(ivSplash);}loadPhoTimes++;});} else {return;}}//通知UI改变状态});}

如果失败则进行超时范围内的重试。

Glide超时重试机制实现相关推荐

  1. Volley超时重试机制详解

    Volley超时重试机制 基础用法 Volley为开发者提供了可配置的超时重试机制,我们在使用时只需要为我们的Request设置自定义的RetryPolicy即可. 参考设置代码如下: int DEF ...

  2. Dubbo retries 超时重试机制的问题

    异常日志 [com.alibaba.dubbo.rpc.filter.TimeoutFilter] - [DUBBO] invoke time out. method: sendMessageargu ...

  3. 谷歌浏览器连接超时_系统超时重试机制(OpenResty/Nginx)

    在实际开发当中,很多故障的产生都是因为没有意识到超时设置的重要性而造成的.如果不设置超时机制,就有可能导致连锁反应,最终系统雪崩.有些中间件天然集成了超时重试的机制,但是在设计当中需要注意的是:读服务 ...

  4. java 超时重试机制_Java之Retry重试机制详解

    应用中需要实现一个功能: 需要将 常规解决方案 try- 在包装正常上传逻辑基础上,通过判断返回结果或监听异常决定是否重试,同时为了解决立即重试的无效执行(假设异常是有外部执行不稳定导致的:网络抖动) ...

  5. dubbo重试机制原理_Dubbo超时和重连机制

    dubbo启动时默认有重试机制和超时机制. 超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败, 重试机制在出现调用失败时,会再次调用.如果在配置的调用次数内都失败,则认 ...

  6. dubbo的超时机制和重试机制

    参考: https://www.cnblogs.com/ASPNET2008/p/7292472.html https://www.tuicool.com/articles/YfA3Ub https: ...

  7. dubbo重试机制原理_[转]dubbo重试机制和超时机制

    dubbo启动时默认有重试机制和超时机制. 超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败, 重试机制在出现调用失败时,会再次调用.如果在配置的调用次数内都失败,则认 ...

  8. dubbo超时重试和异常处理

    dubbo超时重试和异常处理 参考: https://www.cnblogs.com/ASPNET2008/p/7292472.html https://www.tuicool.com/article ...

  9. 怎样实现一个非阻塞的超时重试任务队列

    起因 最近接手一个项目,要把其中的阻塞任务队列,重构成非阻塞.在客户端很少有机会直接处理任务队列.项目完成需要总结经验 阻塞的发生 我这里先说明我遇到的阻塞问题,我这里的阻塞不是多线程访问的阻塞,概念 ...

最新文章

  1. Sentinel 高可用流量管理框架
  2. 微信小程序 自定义导航栏,只保留右上角胶囊按钮
  3. Prometheus + Granafa 构建高大上的MySQL监控平台
  4. django 的用户验证及登录状态保持
  5. 一个面试官对JVM面试问题的分析
  6. WMI介绍及简单实际运用(二,Win32_Processor内容)
  7. TensorFlow和深度学习-无需博士学位(TensorFlow and deep learning without a PhD)
  8. GIS基础软件及操作(二)
  9. Storm sql 简单测试
  10. ELK收集日志到mysql
  11. 如何操作别人计算机,如何远程控制别人的电脑【图解】
  12. android 焦点动画,在一个视图/imageview上获得焦点时,实现android缩放动画?_animation_开发99编程知识库...
  13. c语言标识符附录,附录AC语言运算符表.PDF
  14. Weka中数据挖掘与机器学习系列之Weka系统安装(四)
  15. golang 使用openoffice 生成pdf_使用golang生成PDF文件
  16. ubuntu mysql5.5编码_Ubuntu下MySQL5.5编码设置
  17. Webuploader 出坑记
  18. python模拟鼠标拖动滑块_Python中selenium的作用链模拟滑块运动,python,ActionChains,移动...
  19. (十)vue实例对象介绍
  20. js 微信小程序根据身份证号计算年龄

热门文章

  1. 新浪微博 [异常问题] 414 Request-URL Too Large
  2. Windows7 IIS的安装与配置图解
  3. 靶机渗透练习90-Grotesque:1.0.1
  4. Latex插入灰白相间的跨页长表格
  5. 如何开发一个水果识别,水果识别系统,蔬菜识别系统,果蔬识别系统毕业设计毕设作品
  6. java[逾期检测]开发图书租借系统
  7. 网络三.网络传输设备:集线器,交换机,路由器
  8. Unity 和 Android Studio的SDK接入(新手心得)
  9. 行业应用 | 大数据对新闻传播的影响 大数据
  10. 【CF 70D】Professor's task