溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SharedPreferences詳解

發(fā)布時(shí)間:2020-07-15 19:06:08 來源:網(wǎng)絡(luò) 閱讀:185 作者:天涯懸明月 欄目:移動(dòng)開發(fā)

    我們在開發(fā)軟件的時(shí)候,常需要向用戶提供軟件參數(shù)設(shè)置功能,例如我們常用的微信,用戶可以設(shè)置是否允許陌生人添加自己為好友.對于軟件配置參數(shù)的保存,如果是在window下通常我們會(huì)采用ini文件進(jìn)行保存.如果是J2EE下面,我們會(huì)采用properties屬性文件或者xml進(jìn)行保存.在我們的Android應(yīng)用中又適合采用什么方式保存軟件配置參數(shù)呢?Android平臺(tái)給我們提供了一個(gè)SharedPreferences類,它是一個(gè)輕量級應(yīng)用程序內(nèi)部輕量級的存儲(chǔ)方案,特別適合用于保存軟件配置參數(shù),比如boolean,int,float,long,String等數(shù)據(jù).使用SharedPreferences保存數(shù)據(jù),其實(shí)質(zhì)是采用了xml文件存放數(shù)據(jù),路徑為:/data/data/<package name>/shared_prefs.

獲取SharedPreferences的兩種方式:

1 調(diào)用Context對象的getSharedPreferences()方法

2 調(diào)用Activity對象的getPreferences()方法

兩種方式的區(qū)別:

調(diào)用Context對象的getSharedPreferences()方法獲得的SharedPreferences對象可以被同一應(yīng)用程序下的其他組件共享.

調(diào)用Activity對象的getPreferences()方法獲得的SharedPreferences對象只能在該Activity中使用.

 

SharedPreferences的四種操作模式:

Context.MODE_PRIVATE

Context.MODE_APPEND

Context.MODE_WORLD_READABLE

Context.MODE_WORLD_WRITEABLE

 

Context.MODE_PRIVATE:為默認(rèn)操作模式,代表該文件是私有數(shù)據(jù),只能被應(yīng)用本身訪問,在該模式下,寫入的內(nèi)容會(huì)覆蓋原文件的內(nèi)容

Context.MODE_APPEND:模式會(huì)檢查文件是否存在,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件.

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應(yīng)用是否有權(quán)限讀寫該文件.

MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀取.

MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫入.

將數(shù)據(jù)保存至SharedPreferences:

SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="xixi";
String age="22";
editor.putString("name", name);
editor.putString("age", age);
editor.commit();

 

從SharedPreferences獲取數(shù)據(jù):

SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "defaultname");
String age=preferences.getString("age", "0");


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI