Glide超时重试机制实现
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超时重试机制实现相关推荐
- Volley超时重试机制详解
Volley超时重试机制 基础用法 Volley为开发者提供了可配置的超时重试机制,我们在使用时只需要为我们的Request设置自定义的RetryPolicy即可. 参考设置代码如下: int DEF ...
- Dubbo retries 超时重试机制的问题
异常日志 [com.alibaba.dubbo.rpc.filter.TimeoutFilter] - [DUBBO] invoke time out. method: sendMessageargu ...
- 谷歌浏览器连接超时_系统超时重试机制(OpenResty/Nginx)
在实际开发当中,很多故障的产生都是因为没有意识到超时设置的重要性而造成的.如果不设置超时机制,就有可能导致连锁反应,最终系统雪崩.有些中间件天然集成了超时重试的机制,但是在设计当中需要注意的是:读服务 ...
- java 超时重试机制_Java之Retry重试机制详解
应用中需要实现一个功能: 需要将 常规解决方案 try- 在包装正常上传逻辑基础上,通过判断返回结果或监听异常决定是否重试,同时为了解决立即重试的无效执行(假设异常是有外部执行不稳定导致的:网络抖动) ...
- dubbo重试机制原理_Dubbo超时和重连机制
dubbo启动时默认有重试机制和超时机制. 超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败, 重试机制在出现调用失败时,会再次调用.如果在配置的调用次数内都失败,则认 ...
- dubbo的超时机制和重试机制
参考: https://www.cnblogs.com/ASPNET2008/p/7292472.html https://www.tuicool.com/articles/YfA3Ub https: ...
- dubbo重试机制原理_[转]dubbo重试机制和超时机制
dubbo启动时默认有重试机制和超时机制. 超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败, 重试机制在出现调用失败时,会再次调用.如果在配置的调用次数内都失败,则认 ...
- dubbo超时重试和异常处理
dubbo超时重试和异常处理 参考: https://www.cnblogs.com/ASPNET2008/p/7292472.html https://www.tuicool.com/article ...
- 怎样实现一个非阻塞的超时重试任务队列
起因 最近接手一个项目,要把其中的阻塞任务队列,重构成非阻塞.在客户端很少有机会直接处理任务队列.项目完成需要总结经验 阻塞的发生 我这里先说明我遇到的阻塞问题,我这里的阻塞不是多线程访问的阻塞,概念 ...
最新文章
- Sentinel 高可用流量管理框架
- 微信小程序 自定义导航栏,只保留右上角胶囊按钮
- Prometheus + Granafa 构建高大上的MySQL监控平台
- django 的用户验证及登录状态保持
- 一个面试官对JVM面试问题的分析
- WMI介绍及简单实际运用(二,Win32_Processor内容)
- TensorFlow和深度学习-无需博士学位(TensorFlow and deep learning without a PhD)
- GIS基础软件及操作(二)
- Storm sql 简单测试
- ELK收集日志到mysql
- 如何操作别人计算机,如何远程控制别人的电脑【图解】
- android 焦点动画,在一个视图/imageview上获得焦点时,实现android缩放动画?_animation_开发99编程知识库...
- c语言标识符附录,附录AC语言运算符表.PDF
- Weka中数据挖掘与机器学习系列之Weka系统安装(四)
- golang 使用openoffice 生成pdf_使用golang生成PDF文件
- ubuntu mysql5.5编码_Ubuntu下MySQL5.5编码设置
- Webuploader 出坑记
- python模拟鼠标拖动滑块_Python中selenium的作用链模拟滑块运动,python,ActionChains,移动...
- (十)vue实例对象介绍
- js 微信小程序根据身份证号计算年龄
热门文章
- 新浪微博 [异常问题] 414 Request-URL Too Large
- Windows7 IIS的安装与配置图解
- 靶机渗透练习90-Grotesque:1.0.1
- Latex插入灰白相间的跨页长表格
- 如何开发一个水果识别,水果识别系统,蔬菜识别系统,果蔬识别系统毕业设计毕设作品
- java[逾期检测]开发图书租借系统
- 网络三.网络传输设备:集线器,交换机,路由器
- Unity 和 Android Studio的SDK接入(新手心得)
- 行业应用 | 大数据对新闻传播的影响 大数据
- 【CF 70D】Professor's task