DiskLruCache和LruCache不同的是,LruCache是內(nèi)存緩存,而DiskLruCache是指磁盤緩存,顧名思義就是把文件緩存到磁盤,也也就是手機(jī)的內(nèi)存卡中。接下來先簡單介紹DiskLruCache的使用方法。

下載源碼
DiskLruCache并沒有在 SDK中存在,但又是谷歌提倡的。所以我們要先把DiskLruCache的源碼下載下來。
我們可以通過下面這個地址下載源碼:https://github.com/JakeWharton/DiskLruCache/tree/master/src/main/java/com/jakewharton/disklrucache
然后把源碼中的三個類拷貝到工程中。
DiskLruCache常用方法:
| 方法 | 備注 |
|---|---|
| DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize) | 打開一個緩存目錄,如果沒有則首先創(chuàng)建它,directory:指定數(shù)據(jù)緩存地址 appVersion:APP版本號,當(dāng)版本號改變時,緩存數(shù)據(jù)會被清除 valueCount:同一個key可以對應(yīng)多少文件 maxSize:大可以緩存的數(shù)據(jù)量 |
| Editor edit(String key) | 通過key可以獲得一個DiskLruCache.Editor,通過Editor可以得到一個輸出流,進(jìn)而緩存到本地存儲上 |
| void flush() | 強(qiáng)制緩沖文件保存到文件系統(tǒng) |
| Snapshot get(String key) | 通過key值來獲得一個Snapshot,如果Snapshot存在,則移動到LRU隊列的頭部來,通過Snapshot可以得到一個輸入流InputStream |
| long size() | 緩存數(shù)據(jù)的大小,單位是byte |
| boolean remove(String key) | 根據(jù)key值來刪除對應(yīng)的數(shù)據(jù),如果該數(shù)據(jù)正在被編輯,則不能刪除 |
| void delete() | 關(guān)閉緩存并且刪除目錄下所有的緩存數(shù)據(jù),即使有的數(shù)據(jù)不是由DiskLruCache 緩存到本目錄的 |
| void close() | 關(guān)閉DiskLruCache,緩存數(shù)據(jù)會保留在外存中 |
| boolean isClosed() | 判斷DiskLruCache是否關(guān)閉,返回true表示已關(guān)閉 |
| File getDirectory() | 緩存數(shù)據(jù)的目錄 |
初始化緩存對象
接下來具體介紹DiskLruCache的簡單方法。首先我們在使用某個類的時候,一般都是首先找到它的構(gòu)造方法,但是我們發(fā)現(xiàn)該類是final 類,無法被繼承,并且構(gòu)造方法是私有的方法,不能手動調(diào)用。
public final class DiskLruCache implements Closeable {
private DiskLruCache(File directory, int appVersion, int valueCount, long maxSize) {
this.directory = directory;
this.appVersion = appVersion;
this.journalFile = new File(directory, JOURNAL_FILE);
this.journalFileTmp = new File(directory, JOURNAL_FILE_TEMP);
this.journalFileBackup = new File(directory, JOURNAL_FILE_BACKUP);
this.valueCount = valueCount;
this.maxSize = maxSize;
}
標(biāo)題名稱:Android緩存之DiskLruCache磁盤緩存的使用-創(chuàng)新互聯(lián)
文章來源:http://www.chinadenli.net/article40/djosho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、軟件開發(fā)、自適應(yīng)網(wǎng)站、域名注冊、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容