**:
很多時候我們開發的軟體需要向使用者提供軟體引數設定功能,例如我們常用的
qq,使用者可以設定是否允許陌生人新增自己為好友。對於軟體配置引數的儲存,如果是
window軟體通常我們會採用
ini檔案進行儲存,如果是
j2se應用,我們會採用
properties屬性檔案進行儲存。如果是
android應用,我們最適合採用什麼方式儲存軟體配置引數呢?
android平台給我們提供了乙個
sharedpreferences類,它是乙個輕量級的儲存類,特別適合用於儲存軟體配置引數。使用sharedpreferences儲存資料,其背後是用
xml檔案存放資料,檔案存放在
/data/data/name>/shared_prefs目錄下:
sharedpreferences sharedpreferences = getsharedpreferences("zyj", context.mode_private);
editor editor = sharedpreferences.edit();//獲取編輯器
editor.putstring("name", "老李
");editor.putint("age", 4);
editor.commit();//提交修改
生成的 zyj.xml檔案內容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
老李 因為
sharedpreferences背後是使用
xml檔案儲存資料,getsharedpreferences(name,mode)方法的第乙個引數用於指定該檔案的名稱,名稱不用帶字尾,字尾會由
android自動加上。方法的第二個引數指定檔案的操作模式,共有四種操作模式,這四種模式前面介紹使用檔案方式儲存資料時已經講解過。如果希望
sharedpreferences背後使用的
xml檔案能被其他應用讀和寫,可以指定定
context.mode_world_readable和context.mode_world_writeable許可權。
另外 activity還提供了另乙個
getpreferences(mode)方法操作sharedpreferences,這個方法預設使用當前類不帶包名的類名作為檔案的名稱。
sharedpreferences其實用的是pull直譯器
訪問sharedpreferences中的資料**如下:
sharedpreferences sharedpreferences = getsharedpreferences("zyj", context.mode_private);
//getstring()第二個引數為預設值,如果
preference中不存在該
key,將返回預設值
string name = sharedpreferences.getstring("name", "");
int age = sharedpreferences.getint("age", 1);
如果訪問其他應用中的preference,前提條件是:
該preference建立時指定了context.mode_world_readable或者context.mode_world_writeable許可權。如:有個name>為
com.jbridge.pres.activity的應用使用下面語句建立了
preference。
getsharedpreferences("zyj", context.
mode_world_readable);
其他應用要訪問上面應用的
preference,首先需要建立上面應用的
context,然後通過
context 訪問preference ,訪問preference時會在應用所在包下的
shared_prefs目錄找到
preference :
context_ignore_security
);context.mode_world_readable);
string name = sharedpreferences.getstring("name", "");
int age = sharedpreferences.getint("age", 0);
如果不通過建立
context訪問其他應用的
preference,可以以讀取xml檔案方式直接訪問其他應用
preference對應的
xml檔案,如:
file xmlfile = new file(「/data/data//shared_prefs/zyj.xml」);//應替換成應用的包名
讀寫其他應用的SharedPreferences
要讀寫其他應用的sharedpreferences,前提是該sharedpreferences餓應用程式指定相應的訪問許可權,例如指定了mode world readable,這表明該sharedpreferences可被其他應用程式讀取,指定了mode world writable,這表明該sha...
訪問外部程式的SharedPreference
專案1 建立sharedpreference檔案,包名 com.shared.p1 注意1 sharedpreferences shared f getsharedpreferences shared f name context.mode world readable 第二個引數mode設定為co...
訪問外部程式的SharedPreference
專案1 建立sharedpreference檔案,包名 com.shared.p1 注意1 sharedpreferences shared f getsharedpreferences shared f name context.mode world readable 第二個引數mode設定為co...