image
Cache類中get()方法就是讀取緩存中響應體Response
看下源碼:
image.png
以上是Cache類中get()方法所有源碼标沪,接下來對一些重要點進行分析:
首先在源碼中:
snapshot = cache.get(key);
我們到 DiskLruCache中去查看這個get()方法
image.png
image.png
可以知道通過解密后的key值獲取的Snapshot 對象值吮蛹。
接下來是:
Response response = entry.response(snapshot);
到Entry中的response(...)方法去查看
image.png
image.png
總結(jié):
1:通過請求Url獲取到Snapshot對象读恃。
2:通過Snapshot對象創(chuàng)建Entry對象荔茬。
3:通過Entry對象的response(...)方法獲取到響應體Response對象肮疗。
4:最后通過entry.matches(request, response)進行成對的匹配判斷,如果匹配就換回Response響應對象妙啃,不匹配就返回null并關(guān)閉獲取流。