在android當中,SharedPreferences是一種輕量級數(shù)據(jù)存儲,以鍵值對形式操作。 SharedPreferences文件保存在/data/data/<packagename>/shared_prefs目錄下,即一個xml文件。 支持3種訪問模式 ●MODE_PRIVATE 私有、新內(nèi)容覆蓋原內(nèi)容 ●MODE_APPEND 新內(nèi)容追加到原內(nèi)容 ●MODE_WORLD_READABLE 全局讀、允許其他應用程序讀取 ●MODE_WORLD_WRITEABLE 全局寫、允許其他應用程序?qū)懭?,會覆蓋原數(shù)據(jù) 這點沒驗證通過,其他程序不能修改,只能讀 定義SharedPreferences Java代碼 SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME,MODE); //PREFERENCE_NAME與Android系統(tǒng)中保存的文件名相同 If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()). 第一次調(diào)用該函數(shù)并不會立即在系統(tǒng)創(chuàng)建xml文件,當獲取editor并commit時,xml創(chuàng)建。 SharedPreferences修改 Java代碼 SharedPreferences.Editor editor=sharedPreferences.edit(); //通過SharedPreferences.Edior類修改editor.putString("Name","Tom"); editor.putInt("Age",20); editor.putFloat("Height",); editor.commit(); //調(diào)用Commit()函數(shù)保存修改內(nèi)容 獲取SharedPreferences內(nèi)容 SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);//通過getSaredPerences取SharedPreferences String name=sharedPreferences.getString("Name","Default Name"); //第二個參數(shù)為無法獲取時的缺省值 int age=sharedPreferences.getInt("Age",20); float height=sharedPreferences.getFloat("Height",); 訪問其他應用程序的SharedPreferences需要的3個條件: ●訪問模式為全局讀或全局寫 ●需要知道共享者的包名和SharedPreferences名稱,通過Context獲取對象 ●需要知道每個數(shù)據(jù)的名稱和數(shù)據(jù)類型以讀取數(shù)據(jù)
Java代碼 Context c=null;try{ c=this.createPackageContext(PREFERENCE_PACKAGE,Context.CONTXT_IGNORE_SECURITY); }catch(NameNotFoundException e){ e.printStackTrace(); } SharedPreferences sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE); |
|