安卓----第四周

1.使用SharedPreference方便地存儲數(shù)據(jù)


1.1適用與哪些地方吮龄?

保存用戶偏好的參數(shù)----是否自動登陸魔策,是否記住賬號密碼,是否在Wifi下才能 聯(lián)網(wǎng)等相關(guān)信息仪媒!SharedPreferences使用xml文件, 然后類似于Map集合,使用鍵-值的形式來存儲數(shù)據(jù)

1.2獲取SharedPreference

我們可以通過以下兩種方法之一創(chuàng)建或者訪問shared preference 文件:

⑴.getSharedPreferences()— 如果需要多個通過名稱參數(shù)來區(qū)分的shared preference文件, 名稱可以通過第一個參數(shù)來指定∪眉撸可在app中通過任何一個Context執(zhí)行該方法矛绘。

Context context = getActivity();//在此Activity下使用,getContext則可在整個APP下使用

SharedPreferences sharedPref = context.getSharedPreferences(getString(R.string.preference_file_key),Context.MODE_PRIVATE);

⑵.getPreferences()— 當(dāng)activity僅需要一個shared preference文件時辱匿。因為該方法會檢索activity下默認(rèn)的shared preference文件键痛,并不需要提供文件名稱。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

1.3寫匾七、刪Shared Preference

為了寫shared preferences文件絮短,需要通過執(zhí)行edit()創(chuàng)建一個 SharedPreferences.Editor。通過類似putInt()與putString()等方法傳遞keys與values昨忆,刪除只需獲取Key值就可進行刪除丁频,修改只需將value值改變再寫入即可,最后通過apply()---推薦使用邑贴,提交改變.

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

SharedPreferences.Editor editor = sharedPref.edit();

editor.putInt(getString(R.string.saved_high_score), newHighScore);

editor.apply();//異步寫席里,不占用UI

1.4讀Shared Preference

為了從shared preference中讀取數(shù)據(jù),可以通過類似于 getInt() 及 getString()等方法來讀取拢驾。在那些方法里面?zhèn)鬟f我們想要獲取的value對應(yīng)的key奖磁,并提供一個默認(rèn)的value作為查找的key不存在時函數(shù)的返回值。如下:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

int defaultValue = getResources().getInteger(R.string.saved_high_score_default);

long highScore = sharedPref.getInt(getString(R.string.saved_high_score),default);


2.隨心所欲地管理文件


2.1Android文件的操作模式

2.2存儲在內(nèi)部還是外部

所有的Android設(shè)備均有兩個文件存儲區(qū)域:"internal" 與 "external" 繁疤。 這兩個名稱來自于早先的Android系統(tǒng)咖为,當(dāng)時大多設(shè)備都內(nèi)置了不可變的內(nèi)存(internal storage)及一個類似于SD card(external storage)這樣的可卸載的存儲部件。之后有一些設(shè)備將"internal" 與 "external" 都做成了不可卸載的內(nèi)置存儲稠腊,雖然如此躁染,但是這一整塊還是從邏輯上有被劃分為"internal"與"external"的。只是現(xiàn)在不再以是否可卸載進行區(qū)分了架忌。 下面列出了兩者的區(qū)別:

2.2.1?Internal storage:

1.總是可用的

2.這里的文件默認(rèn)只能被我們的app所訪問吞彤。

3.當(dāng)用戶卸載app的時候,系統(tǒng)會把internal內(nèi)該app相關(guān)的文件都清除干凈鳖昌。

4.Internal是我們在想確保不被用戶與其他app所訪問的最佳存儲區(qū)域备畦。


2.2.2 External storage:

1.并不總是可用的低飒,因為用戶有時會通過USB存儲模式掛載外部存儲器,當(dāng)取下掛載的這部分后懂盐,就無法對其進行訪問了褥赊。

2.是大家都可以訪問的,因此保存在這里的文件可能被其他程序訪問莉恼。

3.當(dāng)用戶卸載我們的app時拌喉,系統(tǒng)僅僅會刪除external根目錄(getExternalFilesDir())下的相關(guān)文件。

4.External是在不需要嚴(yán)格的訪問權(quán)限并且希望這些文件能夠被其他app所共享或者是允許用戶通過電腦訪問時的最佳存儲區(qū)域俐银。.

2.2.3 獲取External存儲的權(quán)限

為了寫數(shù)據(jù)到external storage, 必須在你manifest文件中請求WRITE_EXTERNAL_STORAGE權(quán)限:

<uses-permission android :name="android.permission.WRITE_EXTERNAL_STORAGE"/>

對于internal storage尿背,我們不需要聲明任何權(quán)限,因為程序默認(rèn)就有讀寫程序目錄下的文件的權(quán)限捶惜。

2.2.4 文件的相關(guān)操作


2.3 如何訪問SDcard

SD卡的讀寫

2.4讀取各目錄下的文件

2.4.1讀取raw和assets文件夾下的文件:

res/raw

文件會被映射到R.java文件中田藐,訪問的時候直接通過資源ID即可訪問,而且 他不能有目錄結(jié)構(gòu)吱七,就是不能再創(chuàng)建文件夾


assets

不會映射到R.java文件中汽久,通過AssetManager來訪問,能有目錄結(jié)構(gòu)踊餐,即可以自行創(chuàng)建文件夾

讀取文件資源:

res/raw

InputStreamis=getResources().openRawResource(R.raw.filename);

assets

AssetManager am=getAssets();

InputStream is=am.open("filename");



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末景醇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吝岭,更是在濱河造成了極大的恐慌三痰,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窜管,死亡現(xiàn)場離奇詭異散劫,居然都是意外死亡,警方通過查閱死者的電腦和手機幕帆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門舷丹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜓肆,你說我怎么就攤上這事∧北遥” “怎么了仗扬?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蕾额。 經(jīng)常有香客問我早芭,道長,這世上最難降的妖魔是什么诅蝶? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任退个,我火速辦了婚禮募壕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘语盈。我一直安慰自己舱馅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布刀荒。 她就那樣靜靜地躺著代嗤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缠借。 梳的紋絲不亂的頭發(fā)上干毅,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音泼返,去河邊找鬼硝逢。 笑死,一個胖子當(dāng)著我的面吹牛绅喉,可吹牛的內(nèi)容都是我干的渠鸽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼霹疫,長吁一口氣:“原來是場噩夢啊……” “哼拱绑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丽蝎,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤猎拨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后屠阻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體红省,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年国觉,在試婚紗的時候發(fā)現(xiàn)自己被綠了吧恃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡麻诀,死狀恐怖痕寓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蝇闭,我是刑警寧澤呻率,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站呻引,受9級特大地震影響礼仗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一元践、第九天 我趴在偏房一處隱蔽的房頂上張望韭脊。 院中可真熱鬧,春花似錦单旁、人聲如沸沪羔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽任内。三九已至,卻和暖如春融柬,著一層夾襖步出監(jiān)牢的瞬間死嗦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工粒氧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留越除,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓外盯,卻偏偏與公主長得像摘盆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饱苟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容