●Android檔案存取--永久性資料處理(關機後重開機資料還是會存在)
1.SharedPreferences (系統的物件)
=>使用時機:
a.當資料只有一兩筆ex:使用者手機暱稱
b.資料有好幾個一筆ex:電話/email/name
c.應用程式的設定
2.檔案(內部--本機記憶體、外部-sd卡)=>用來存取圖片、大量文字等資料
=>存取外部檔案時會有權限問題,對於敏感權限(ex:通訊錄、照片、詳細定位等與隱私相關)android 6以後都要user授權
3.資料庫(SQL Lite)=>資料量在幾百筆以上或需要特殊篩選(ex:搜尋)時使用,如果資料量沒有這麼多,存在檔案就可以
4.雲端(存放在雲端的好處是即使手機重灌還可以使用)
●補充說明-android device moniter觀看data:
(一)開啟android device moniter
=>開啟file explorer,android模擬器要使用早一點的版本,才能在android device moniter看到data,如下圖
=>這個模擬器比較新就無法看到data下的內容
(二)開模擬器的時候,如果出現"Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled."要把Enable ADB Integration勾選
點button之後,回到android device moniter=>data/data/packagename/shared_prefs/檔案名稱.xml
再點右上角存到桌面
開啟檔案,就可以看見剛剛寫入的key和value
●程式與說明--java code
(一)write(寫入)
public void writeclick(View view) {
SharedPreferences sp=
getSharedPreferences("test",MODE_PRIVATE);
SharedPreferences.Editor ed=sp.edit();
ed.putString("mytestkey","123");
ed.commit();
}
**說明:
1.宣告一個share preference的物件
2.但這邊不是用new,而是從系統取回來這個物件,所以用getSharedPreferences(自訂檔案名稱,mode模式)
3.接著要取得sharePreference物件中的Editor物件,用來放值
4.使用putStirng(key,value);
5.ed.commit();提交放入手機中=>Commit your preferences changes back from this Editor to the
SharedPreferences object it is editing.=>假設要放不只一筆,先全部put完再commit一次即可
(二)read(讀取)
public void readclick(View view) {
SharedPreferences sp=
getSharedPreferences("test",MODE_PRIVATE);
String str=sp.getString("mytestkey","no data");
Toast.makeText(this,str,Toast.LENGTH_SHORT).show();
}
**說明:
1.這邊的getSharedPreferences的參數要和write的一樣
2.getString():String getString (String key,String defValue):Retrieve a String value from the preferences.
=>defValueString: Value to return if this preference does not exist.This value may be null.
=>第二個參數是設定讀不到的時候要顯示的資料
●程式參考(GitHub):檔案存取(一)SharedPreferences
文章標籤
全站熱搜
