Glide源码分析网页图片加载流程(一):资源加载前的工作

本文是基于Activity的生命周期来探究Glide在加载网页图片的流程。首先举一个简单的例子

Glide.with(this)
        .load("http://k.zol-img.com.cn/sjbbs/7692/a7691515_s.jpg")
        .into(mImageView);

下面展示的是上述代码的时序图。

因为Glide的with方法中传入的是Activity,所以Glide在Activity的onCreate生命周期中是不会开始加载资源的。

 

Glide图片加载的生命周期管理是被Activity生命周期驱动的,当调用Glide.with(Activity)的过程中,在fragmentGet

函数中会创建一个RequestManagerFragment对象。

在其构造函数中传入了一个ActivityFragmentLifecycle对象。

            

最后在FragmentManager中加入上面创建好的RequestManagerFragment。这样一来,Glide就实现了对宿主Activity的生命

周期的监听。并通过ActivityFragmentLifecycle来响应不同的生命周期事件。

其中ActivityFragmentLifecycle中有几个集合,如果想接收Activity生命周期回调的对象都可以通过addListener向其注册监听。

RequestManager向ActivityFragmentLifecycle添加监听:

GlideDrawableImageViewTarget向ActivityFragmentLifecycle添加监听:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值