想必大家一定用過 sharedpreferences 吧!就我個人而言,特別討厭每次 put 完數據還要 commit。對 我就是這麼懶!哈哈。另外,sharedpreferences 不能存類,集合和bitmap等數據!這點也讓人非常不爽啊!所以,我就在這個美好的星期天撸了名為 SHARE 的工具類用來替代 sharedpreferences。
先來看一下,整體架構圖(畫的不好請大家見諒):
從圖中,我們可以了解到,當我們 put 數據的時候,我們同時存入到 內存和和sd卡中。讀取的時候,優先從內存中獲取,如果內存中沒有,則從sd中獲取。如果兩者都沒有,則使用用戶自己設置的默認值!
下來看一下代碼目錄結構:
在 Application中初始化:
@Override
public void onCreate() {
super.onCreate();
File file = new File(Environment.getExternalStorageDirectory().toString() + File.separator + "sample");
if (!file.exists()) {
file.mkdirs();
}
Share.init("CACHE", 10 * 1024, file.toString());
}
之後,你就可以任意的使用它了!
//設置字符串
Share.putString("str", "你好啊");
//設置int
Share.putInt("int", 1);
//設置boolean
Share.putBoolean("boolean", true);
//設置double
Share.putDouble("double", 2.1d);
//設置long
Share.putLong("long", 20000);
//設置flot
Share.putFloat("float", 2.2f);
//設置類
Share.putObject("obj", people);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.dd);
//設置bitmap
Share.putBitmap("bitmap", bitmap);
//設置集合
Share.putObject("list", items);
//得到字符串
String str=Share.getString("str");
//得到double
double dd=Share.getDouble("double", 0.0d);
//得到int
int value=Share.getInt("int", 0);
//得到float
float ff=Share.getFloat("float", 0.0f);
//得到bitmap
Bitmap map=Share.getBitmap("bitmap");
//得到集合
List<String> copy= (List<String>) Share.getObject("list");
.....
使用就是如此簡單!
1.增加異步 get 和 put.
2.對泛型的支持.
希望這個項目對大家有用。也希望多 star .同時也能多多提出修改意見!不管是對項目本身還是代碼!!!!
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11