用於訪問和修改getSharedPreferences(String, int)返回偏好設置數據(preference data)的一個接口。對於任何一組特殊的preferences,所有的客戶端共享一個此類單獨的實例。修改Preferences必須通過一個SharedPreferences.Editor對象,以確保當他們提交存儲數據的操作時,preference值保持一致的狀態。
示例代碼
譯注:SharedPreferences保存位置:/data/data/app_name/shared_prefs/*.xml
private boolean flag = false;
//取得活動的Preferences對象
SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);
//取得值
flag = settings.getBoolean(“flag”,false);
//取得活動的Preferences對象
SharedPreferences settings = getPreferences(0);
//取得編輯對象
SharedPreferences.Editor editor = settings.edit();
//添加值
editor.putBoolean(“true”,flag);
//提交保存
editor.commit();
Preferences在Android當中被用來記錄應用,以及用戶喜好等等,它可以用來保存簡單的數據類型,如Int,Double,Boolean等。Preferences中保存的數據可以理解為Map型。
Android數據持久化方法中最簡單的一種,即使用Preferences的鍵值對存儲方式。這種方式主要用來存儲比較簡單的一些數據,
而且是標准的Boolean、Int、Float、Long、String等類型。
android.content.SharedPreferences是一個接口,用來獲取和修改持久化存儲的數據。
有三種獲取系統中保存的持久化數據的方式:
1.this.getPreferences (int mode)
通過Activity對象獲取,獲取的是本Activity私有的Preference,保存在系統中的xml形式的文件的名稱為這個Activity的名字,因此一個Activity只能有一個,屬於這個Activity。
2.this.getSharedPreferences (String name, int mode)
因為Activity繼承了ContextWrapper,因此也是通過Activity對象獲取,但是屬於整個應用程序,可以有多個,以第一參數的name為文件名保存在系統中。
3.PreferenceManager.getDefaultSharedPreferences(this);
PreferenceManager的靜態函數,保存PreferenceActivity中的設置,屬於整個應用程序,但是只有一個,Android會根據包名和PreferenceActivity的布局文件來起一個名字保存。