Android復(fù)習(xí)之旅--SharePreferences

SharePreferences是一種輕量級的數(shù)據(jù)存儲方式尤误,它是以key-value的形式保存在 data/data/<packagename>/shared_prefs 下的xml文件中。通常使用它來保存應(yīng)用中的一些簡單的配置信息结缚,如用戶名损晤、密碼、自定義參數(shù)的設(shè)置等红竭。

需要注意的是沉馆,sharepreferences中的value值只能是float码党、int、long斥黑、boolean、String眉厨、StringSet 這些類型數(shù)據(jù)锌奴。

對于信息量大的數(shù)據(jù),不建議用sharepreferences來保存憾股,應(yīng)使用文件存儲或者SQLite存儲鹿蜀。

保存數(shù)據(jù)

1、 獲得SharePreferences的實例對象

//name為文件名服球,不需帶后綴名茴恰; mode為文件操作模式
SharePreferences sp = getSharePreferences(String name, int mode);

常用的文件操作模式

  • MODE_PRIVATE:指定該sharepreferences中的數(shù)據(jù)只能被本應(yīng)用程序讀寫
  • MODE_APPEND:該文件的內(nèi)容可以追加

2、獲取編輯器

Editor editor = sp.edit();  

3斩熊、存入數(shù)據(jù)并提交

editor.putString("name", "飄渺云軒");
editor.putInt("age", 21);
...
editor.commit();    //提交修改往枣,也可使用apply()提交

需要注意的是commit()是將數(shù)據(jù)寫入內(nèi)存后同步提交到磁盤,而apply()將數(shù)據(jù)寫入內(nèi)存后會在一個新線程中異步提交到磁盤粉渠。使用commit()提交會返回一個boolean來表明是否提交成功分冈,apply()則沒有返回值。

提交數(shù)據(jù)時霸株,如果數(shù)據(jù)比較大雕沉,commit()方法會阻塞主線程造成界面卡頓;因此在不要求提交結(jié)果的情況下應(yīng)盡量使用appley()方法提交去件。

刪除數(shù)據(jù)

editor.remove(String key);  //刪除一條數(shù)據(jù)
editor.clear();  //刪除所有數(shù)據(jù)

獲取數(shù)據(jù)

String name = sp.getString("name", "");
Int age = sp.getInt("age", 0);

第一個參數(shù)是key坡椒,第二個參數(shù)是缺省值,也就是默認值

注意

  • 存入數(shù)據(jù)和刪除數(shù)據(jù)時尤溜,一定要在最后使用editor.commit()或editor.apply()方法提交數(shù)據(jù)
  • 獲取數(shù)據(jù)的key值與存入數(shù)據(jù)的key值的數(shù)據(jù)類型要一致倔叼,否則查找不到數(shù)據(jù)
  • 保存sharepreferences的key值時,應(yīng)使用final常量保存靴跛,以免存儲缀雳、刪除時寫出了。如:public static final String KEY = "name";
  • 在一個頁面中梢睛,盡量不要進行多次commit()和apply()操作肥印,在不要求提交結(jié)果的情況下應(yīng)盡量使用appley()

案例

詳情請到我的GitHub上查看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绝葡,隨后出現(xiàn)的幾起案子深碱,更是在濱河造成了極大的恐慌,老刑警劉巖藏畅,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敷硅,死亡現(xiàn)場離奇詭異功咒,居然都是意外死亡,警方通過查閱死者的電腦和手機绞蹦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門力奋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人幽七,你說我怎么就攤上這事景殷。” “怎么了澡屡?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵猿挚,是天一觀的道長。 經(jīng)常有香客問我驶鹉,道長绩蜻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任室埋,我火速辦了婚禮办绝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘词顾。我一直安慰自己八秃,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布肉盹。 她就那樣靜靜地躺著昔驱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪上忍。 梳的紋絲不亂的頭發(fā)上骤肛,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音窍蓝,去河邊找鬼腋颠。 笑死,一個胖子當(dāng)著我的面吹牛吓笙,可吹牛的內(nèi)容都是我干的淑玫。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼面睛,長吁一口氣:“原來是場噩夢啊……” “哼絮蒿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叁鉴,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤土涝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后幌墓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體但壮,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡冀泻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜡饵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弹渔。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖验残,靈堂內(nèi)的尸體忽然破棺而出捞附,到底是詐尸還是另有隱情,我是刑警寧澤您没,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站胆绊,受9級特大地震影響氨鹏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜压状,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一仆抵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧种冬,春花似錦镣丑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至十兢,卻和暖如春趣竣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旱物。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工遥缕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宵呛。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓单匣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宝穗。 傳聞我的和親對象是個殘疾皇子户秤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容