SharedPreferences是Android平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類,用來(lái)保存應(yīng)用的一些常用配置,比如Activity狀態(tài),Activity暫停時(shí),將此activity的狀態(tài)保存到SharedPereferences中;當(dāng)Activity重載,系統(tǒng)回調(diào)方法onSaveInstanceState時(shí),再?gòu)腟haredPreferences中將值取出。
SharedPreferences提供了java常規(guī)的Long、Int、String等類型數(shù)據(jù)的保存接口。
SharedPreferences類似過(guò)去Windows系統(tǒng)上的ini配置文件,但是它分為多種權(quán)限,可以全局共享訪問(wèn)。
獲取SharedPreferences的兩種方式:
1 調(diào)用Context對(duì)象的getSharedPreferences()方法
2 調(diào)用Activity對(duì)象的getPreferences()方法
兩種方式的區(qū)別:
調(diào)用Context對(duì)象的getSharedPreferences()方法獲得的SharedPreferences對(duì)象可以被同一應(yīng)用程序下的其他組件共享.
調(diào)用Activity對(duì)象的getPreferences()方法獲得的SharedPreferences對(duì)象只能在該Activity中使用.
SharedPreferences的四種操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
Context.MODE_PRIVATE:為默認(rèn)操作模式,代表該文件是私有數(shù)據(jù),只能被應(yīng)用本身訪問(wèn),在該模式下,寫(xiě)入的內(nèi)容會(huì)覆蓋原文件的內(nèi)容
Context.MODE_APPEND:模式會(huì)檢查文件是否存在,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來(lái)控制其他應(yīng)用是否有權(quán)限讀寫(xiě)該文件.
MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀取.
MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫(xiě)入.
將數(shù)據(jù)保存至SharedPreferences:
SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="xixi";
String age="22";
editor.putString("name", name);
editor.putString("age", age);
editor.commit();
從SharedPreferences獲取數(shù)據(jù):
SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "defaultname");
String age=preferences.getString("age", "0");