部落格:郭神
簡單些一寫要記得東西。
開啟快取
呼叫dislrucache 中的open方法
public
獲取快取位址的方法
public file getdiskcachedir(context context, string uniquename) elseuniquename 是為了針對不同型別的資料進行區分而設定的乙個唯一值,比如網易快取路徑下看到的bitmap,object等資料夾。return new file(cachepath + file.separator + uniquename);
}
獲取當前應用程式版本號,disklrucache 認為當應用程式有版本更新的時候,所有的資料都應該從網上重新獲取。
標準的open()方法這樣寫
disklrucache mdisklrucache = null;
try
} catch (ioexception e)
寫入快取
private boolean downloadurltostream(string urlstring, outputstream outputstream)
return
true;
} catch (final ioexception e) finally
try
if (in != null)
} catch (final ioexception e)
}return
false;
}
new thread(new runnable() else
}mdisklrucache.flush();
} catch (ioexception e)
}}).start();
讀取快取
try
} catch (ioexception e)
移除快取
try catch (ioexception e)
其他api
除了寫入快取、讀取快取、移除快取之外,disklrucache還提供了另外一些比較常用的api,我們簡單學習一下。
1. size()
這個方法會返回當前快取路徑下所有快取資料的總位元組數,以byte為單位,如果應用程式中需要在介面上顯示當前快取資料的總大小,就可以通過呼叫這個方法計算出來。比如網易新聞中就有這樣乙個功能,如下圖所示:
2.flush()
這個方法用於將記憶體中的操作記錄同步到日誌檔案(也就是journal檔案)當中。這個方法非常重要,因為disklrucache能夠正常工作的前提就是要依賴於journal檔案中的內容。前面在講解寫入快取操作的時候我有呼叫過一次這個方法,但其實並不是每次寫入快取都要呼叫一次flush()方法的,頻繁地呼叫並不會帶來任何好處,只會額外增加同步journal檔案的時間。比較標準的做法就是在activity的onpause()方法中去呼叫一次flush()方法就可以了。
3.close()
這個方法用於將disklrucache關閉掉,是和open()方法對應的乙個方法。關閉掉了之後就不能再呼叫disklrucache中任何操作快取資料的方法,通常只應該在activity的ondestroy()方法中去呼叫close()方法。
4.delete()
這個方法用於將所有的快取資料全部刪除,比如說網易新聞中的那個手動清理快取功能,其實只需要呼叫一下disklrucache的delete()方法就可以實現了。
安卓快取檔案
首先我們要弄清楚幾個概念 getcachedir data data getfilesdir data data 一般來說,上面這兩個目錄是使用者不可見的,屬於應用內部,比如webview等一些快取就存放於getcachedir 我是分割線 getexternalfilesdir sdcard an...
安卓推送方案及比較
經常有朋友讓我推薦下 android 上面的推送方案,比較下各種方案的優缺點 效能 開發難度等,特意寫了這篇文章,這樣以後就不用一一回答了。方案一 google 官方的服務 但,通過對比研究發現 c2dm 機制存在以下缺點 1 gcm 要求android 系統必須是2.2以上的版本,所以對於不少2....
安卓客戶端快取機制
在手機客戶端的應用中,如果經常訪問伺服器,那麼不僅伺服器的壓力就會比較大,而且載入慢導致使用者體驗不是很好,現在快取可以解決這一問題,靈活的快取可以說不僅大大減輕了伺服器的壓力,而且因為更快速的使用者體驗而方便了使用者。採用快取,可以進一步大大緩解資料互動的壓力,我們簡略列舉一下快取管理的適用環境 ...