Glide进阶详解(七)

Glide 的 GeneralRequest 类提供了一个方法去设置 log 的级别。不幸的是,在生产过程中,使用这个类并不容易。然而,有一个非常简单的方法去获得 Glide 的调试日志。你所要做的就是通过 adb的 shell 来激活。打开你的终端,使用以下命令:

adb shell setprop log.tag.GenericRequest DEBUG  

最后一个 DEBUG 来自标准的 Android 日志常量。因此,你你可以选择 debug 的优先级:

  • 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。为了记录在生产中的 App,你将需要用一个不同的方式。答案是,依然用回调,我们在下一节来探讨。

常规异常日志记录

Glide 不能直接去访问 GenericRequest 类去设置日志,但万一一些请求出错了你是可以捕获异常的。比如,如果图片不可用,Glide 会(默默地)抛出一个异常,并且显示一个 drawable ,如果你已经指定了 .error() 的话。如果你明确想要知道这个异常,创建一个监听并传 .listener() 方法到 Glide 的建造者中。

首先,创建一个监听作为一个字段对象去避免垃圾回收(注:之前说过不要用匿名内部类的形式):

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值