glide:异常: 调试和报错处理
来源:互联网 发布:sql可以装在d盘吗 编辑:程序博客网 时间:2024/05/02 06:10
本地调试
Glide的常规请求里提供了一个方法设置Log的层级。不幸地是,你没法轻易在产品使用中轻易获取。但,也有一个很简单的方法获得Glide的调试log。你只要通过adb shell,打开terminal,然后使用下面的命令行:
adb shell setprop log.tag.GenericRequest DEBUG
最后一部分DEBUG来自标准Android的log常量。因此,作为参数的递增优先级的选项如下:
- VERBOSE
- DEBUG
- INFO
- WARN
- ERROR
当图片不存在时,会输出下面的日志:
io.futurestud.tutorials.glide D/GenericRequest: load failed io.futurestud.tutorials.glide D/GenericRequest: java.io.IOException: Request failed 404: Not Found ...
你已经想到了,这只能在你有个真机连接到电脑上,并且正在调试你的应用时才能用。为了在你的app中生成日志,你需要另外一个不同的方式。方案又是用回调,我们会在后续的小节中介绍。
基本的异常日志
Glide不提供直接获取常规请求的日志,但是你可以在请求出错时抓取异常的日志。例如,如果图片不存在,Glide会(静静地)抛出一个异常,并显示出你.erroer()
里指定的图片。如果你明确想要知道异常,创建一个listener,然后传递给Glide的.listener()
方法。
首先,创建一个listener
作为一个字段对象,避免被垃圾回收:
private RequestListener<String, GlideDrawable> requestListener = new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { // todo log exception // important to return false so the error placeholder can be placed return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { return false; }};
在onException
方法中,你可以抓取问题,并决定你需要做什么,比如记录日志。如果Glide应当处理这个后果,比如显示一个出错占位图,在onException
方法中返回false
是很重要的。
你可以在Glide中的构造方法里设置listener
:
Glide .with( context ) .load(UsageExampleListViewAdapter.eatFoodyImages[0]) .listener( requestListener ) .error( R.drawable.cupcake ) .into( imageViewPlaceholder );
.error()
是否设置不影响日志正常工作。但只有在listener
的onException
方法里返回false
,R.drawable.cupcake
才会显示出来。
0 0
- glide:异常: 调试和报错处理
- Glide入门教程——12.异常: 调试和报错处理
- PDO异常报错处理
- mysql异常报错处理
- 水晶报表异常和常规报错处理之总汇
- fckeditor使用和报错处理
- Jmeter 安装步骤 和 报错处理
- Gentoo老版本升级过程emerge异常报错处理
- VS2008 多线程调试报错处理(ContextSwitchDeadlock )
- VC下ffmpeg例程调试报错处理
- ASPxGridView报错处理
- mencoder 报错处理
- tomcat报错处理
- Unity 报错处理
- @override 报错处理
- javaee报错处理
- RSS报错处理
- SVN报错处理
- 完美的代价——回文字符串
- javascript时间格式format函数,js日期格式化函数
- 机器学习之基于matlab的神经网络粒子群优化算法的实现
- 正则表达式常用元字符整理小结
- 欢迎使用CSDN-markdown编辑器
- glide:异常: 调试和报错处理
- 《hive编程指南》阅读笔记摘要(三)
- 深入理解Java的接口和抽象类
- LintCode 链表插入排序
- docker 打包 node 项目
- eclipse安装tomcat插件及配置tomcat
- HTTPS协议原理分析
- [补全中...]Linux-入门知识结构
- 三种方法求最大公约数(C语言版)