SharePreference
輕量級(jí)的存儲(chǔ)類,其背后是用xml文件存放數(shù)據(jù)傅蹂,文件存放在/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", "林計(jì)欽");
editor.putInt("age", 24);
editor.commit();//提交修改
備注:
1. Context.MODE_PRIVATE:為默認(rèn)操作模式算凿,代表該文件是私有數(shù)據(jù)份蝴,只能被應(yīng)用本身訪問,在該模式下氓轰,寫入的內(nèi)容會(huì)覆蓋原文件的內(nèi)容婚夫,如果想把新寫入的內(nèi)容追加到原文件中∈鸺Γ可以使用Context.MODE_APPEND
2. Context.MODE_APPEND:模式會(huì)檢查文件是否存在案糙,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件靴庆。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應(yīng)用是否有權(quán)限讀寫該文件时捌。
3. MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀取炉抒;
4. MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫入奢讨。
訪問SharedPreferences
訪問本應(yīng)用創(chuàng)建的SharedPreferences:
SharedPreferences sharedPreferences = getSharedPreferences(preferenceName, Context.MODE_PRIVATE);
String name = sharedPreferences.getString("name", "");
//getString()第二個(gè)參數(shù)為缺省值,如果preference中不存在該key焰薄,將返回缺省值
int age = sharedPreferences.getInt("age", 1);
訪問其他應(yīng)用創(chuàng)建的SharedPreferences:
前提是其他應(yīng)用創(chuàng)建該SharedPreferences時(shí)拿诸,使用了MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 參數(shù)扒袖。
首先,先獲取創(chuàng)建應(yī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);