Android中關於Volley的使用(八)緩存機制的深入認識

有一個朋友在私信裡問我,

1)Volley可以在SD卡中緩存圖片,那可不可以在SD卡中緩存Json數據呢?

2)如果斷網瞭,Volley是不是就不能用瞭,存在SD卡中的數據是不是就用不瞭瞭?

在Volley中,默認使用的緩存實現是 DiskBasedCache,在創建RequestQueue的時候,同時也會創建一個DiskBasedCache對象,如下:

RequestQueue queue = new RequestQueue(new DiskBasedCache(cacheDir), network);

而緩存文件的位置就是由CacheDir提供的,它的值如下:

在前面的VolleyDemo中,我們加載瞭一些圖片,也加載瞭一些json數據,那麼我們現在就來看看在緩存中的數據,有沒有緩存圖片的數據,同時,有沒有緩存json的數據。vcD4KPHA+Vm9sbGV5zsS8/rzQz8LD5tPQ0tTPwry4zPXK/b7do7o8L3A+CjxwPjxpbWcgc3JjPQ==”/uploadfile/Collfiles/20140408/20140408093319108.png” alt=”\”>

在文件夾中,以”-993813455″開頭的文件,其實就是圖片文件的緩存,而以-165747開頭的那個文件,其實就是我們從天氣網站拿下來的json數據的緩存,我們可以打開看一下裡面文件的信息,下面是緩存文件-993813455-446463727的內容:

 <       https://img.my.csdn.net/uploads/201403/03/1393854084_6138.jpg       "FhHq7DMn1v_jbLzbG84-iD_stqzT"榟?E  橮奓  橮奓            X-ViaN       1.1 gzck20:8107 (Cdn Cache Server V2.0), 1.1 dgck149:0 (Cdn Cache Server V2.0)       ETag       "FhHq7DMn1v_jbLzbG84-iD_stqzT"       X-Reqid       JAQAAFDYivywH2IT       X-Log       MC;IO:2       Content-Length       16713       Content-Transfer-Encoding       binary
Connection
keep-alive Server nginx/1.4.4
Cache-Control public, max-age=31536000 X-Whom nb5 Date Sat, 05 Apr 2014 16:01:19 GMT Access-Control-Allow-Origin * Content-Disposition& inline; filename="1393854084_6138.jpg" X-Android-Received-Millis
1396713679439 Content-Type
image/jpeg
Accept-Ranges bytes X-Android-Sent-Millis
1396713678988

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *