最近的Android項目上面需要用到緩存,所以查了一下緩存數據的方法,下面是介紹:
1、sharedpreferences
這個是學Android的朋友都會接觸到的持久化技術,我是通過《第一行代碼》學習的,有興趣的朋友可以自行翻閱此書進行更全面的學習。
以下引用百度百科上的介紹:SharedPreferences是Android平臺上一個輕量級的存儲類,用來保存應用的一些常用配置,比如Activity狀態,Activity暫停時,將此activity的狀態保存到SharedPereferences中;當Activity重載,系統回調方法onSaveInstanceState時,再從SharedPreferences中將值取出。
SharedPreferences
文件是使用 XML 格式來對數據進行管理的 ,這很容易看出來,因爲存儲的時候,就是通過鍵值對的方式進行數據存儲的,看看下面的代碼就能知道,這個存儲機制是非常方便的,因爲這個類上的方法會判斷輸入的值是何種類型,進而自動保存成那種類型的數據,爲了展示方便,我直接上《第一行代碼》上的源碼:
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name", "Andy");
editor.putInt("age", 22);
editor.putBoolean("married", false);
editor.commit();
這樣就算是存儲完成了,讀取也是非常簡單的:SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
String name = pref.getString("name", "");
int age = pref.getInt("age", 0);
boolean married = pref.getBoolean("married", false);
如果讀取不成功(沒有緩存此數據),那麼就會返回傳入的默認值,使用這個技術緩存用戶名和密碼,只需要在app開啓的時候,自動去讀取緩存好的用戶名密碼,然後寫到界面中即可,非常方便。2、ACache(ASimpleCache)
這是一個輕量級的緩存框架,以至於你只需要導入一個java文件就可以輕鬆使用裏面的緩存功能。關於這個框架的資源和介紹,網上真的是一大堆,我這裏的介紹只不過是粗略簡介,很多人的博客上面都會介紹,而且大家的介紹都是一模一樣的,都寫着原創,都已經不知道誰纔是真正的原創了,只有一點是確定的,這個框架是楊福海做的,大家有興趣可以去關注下這個人,我這裏就只說一下這個框架對比sharedpreferences的優勢和用法吧:
優勢:
SharedPreferences只能保存一些基本數據類型、Serializable、Bundle等數據,
而Acache可以緩存如下數據:
普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的Java對象,和 byte數據。
使用方法,超簡單,我緩存的是JsonObject數據:
ACache mCache = ACache.get(this);
JSONObject jsonObject = new JSONObject();
try {
//封裝json數據
jsonObject.put("userName", strName);
jsonObject.put("userPad", strPsd);
} catch (Exception e) {
}
mCache.put("user", jsonObject);
讀取數據也是非常簡單:
ACache mCache = ACache.get(this);
JSONObject jsonObject = mCache.getAsJSONObject("user");
不過值得注意的是,讀取緩存的Json數據的時候,如果緩存中並沒有找到相應的數據,是會返回一個null的,也就是說JSONObject的值爲null,這個時候就不要去讀取JSONObject裏面的值了,會出錯的,建議的方法是讀取JSONObject裏面的值之前先判斷一下JSONObject是否爲空。
好了,使用sharedpreferences、ACache緩存用戶名和密碼的方法就介紹到這裏,午安。