SharePreference
輕量級的存儲類,其背后是用xml文件存放數據,文件存放在/data/data/<package name>/shared_prefs目錄下。
創(chuàng)建
String preferenceName=“ziliao”;
SharedPreferences sharedPreferences = getSharedPreferences(preferenceName, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//獲取編輯器
editor.putString("name", "林計欽");
editor.putInt("age", 24);
editor.commit();//提交修改
備注:
1. Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中??梢允褂肅ontext.MODE_APPEND
2. Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創(chuàng)建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。
3. MODE_WORLD_READABLE:表示當前文件可以被其他應用讀??;
4. MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
訪問SharedPreferences
訪問本應用創(chuàng)建的SharedPreferences:
SharedPreferences sharedPreferences = getSharedPreferences(preferenceName, Context.MODE_PRIVATE);
String name = sharedPreferences.getString("name", "");
//getString()第二個參數為缺省值,如果preference中不存在該key,將返回缺省值
int age = sharedPreferences.getInt("age", 1);
訪問其他應用創(chuàng)建的SharedPreferences:
前提是其他應用創(chuàng)建該SharedPreferences時,使用了MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 參數。
首先,先獲取創(chuàng)建應用的Context,
Context otherAppsContext = createPackageContext("com.ljq.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("ljq", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);