簡介:它是一個輕量級的存儲類,適用於保存軟件配置參數。
運用:
SharedPreferencessharedPreferences = getSharedPreferences("love",Context.MODE_PRIVATE);
Editor editor =sharedPreferences.edit();//獲取編輯器
editor.putString("name","sbx");
editor.putInt("age", 22);
editor.commit();//提交修改
以上完成後會在/data/data/<package name>/shared_prefs目錄下以.xml的文件保存。
參數:1、指定該文件的名稱,名稱不帶後綴。 2、指定文件的操作模式,共有四種模式:
❶ Context.MODE_PRIVATE:爲默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下
寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到源文件中,可以使用Context.MODE_APPEND
❷ Context.MODE_APPEND: 該模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
❸ Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀和寫。
❹ MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取; MODE_WORLD_WRITEABLE: 表示當前文件可
被其他應用寫入。
✪ getPreferences(mode)方法操作SharedPreferences,這個方法默認使用當前類不帶包名的類名作爲文件名。
訪問自己的:
SharedPreferences sharedPreferences =getSharedPreferences("love", Context.MODE_PRIVATE);
String name =sharedPreferences.getString("name", "");
int age =sharedPreferences.getInt("age", 1);
getString()第二個參數爲缺省值,如果preference中不存在該key,將返回缺省值。
其他應用訪問我的:
前提條件是:該preference創建時指定了Context.MODE_WORLD_READABLE或者 Context.MODE_WORLD_WRITEABLE。
private ContextotherAppsContext;
private SharedPreferences sharedPreferences;
try {
otherAppsContext =createPackageContext("com.love",Context.CONTEXT_IGNORE_SECURITY);
sharedPreferences= otherAppsContext.getSharedPreferences("love",
Context.MODE_WORLD_READABLE );
} catch (NameNotFoundException e) {
e.printStackTrace();
}
String name =sharedPreferences.getString("name", "");
int age =sharedPreferences.getInt("age", 1);