SDWebImage的内部实现机制(三级缓存)
- 首先会去内存缓存中取,如果内存缓存中存在,就取出来直接设置
- 如果内存缓存中没有,就去磁盘缓存里取,如果磁盘缓存里有,就取出来设置,并且保存一份到内存缓存中
- 如果内存缓存和磁盘缓存中都没有,说明所有缓存都不存在该图片,这时候就需要去下载
- 下载之前会先查看这时候有没有此图片的下载的操作,如果有就等待下载完毕,如果没有就需要下载
- ,由于下载图片属于耗时操作,因此会开启子线程来下载,在图片下载完成显示之前会显示一张占位图片
- 在图片下载完成之后会显示图片,并且将下载的图片分别保存到内存缓存和磁盘缓存中去
- SDImageCache在初始化的时候会注册一些消息通知,在收到内存警告或者退到后台的时候清理内存图片缓存,应用结束的时候清理过期的图片