SDWebImage的内部实现机制(三级缓存)

SDWebImage的内部实现机制(三级缓存)

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

你可能感兴趣的:(SDWebImage的内部实现机制(三级缓存))