Android 數據存儲之 SharedPreference

         SharedPreferences也是一種輕型的數據存儲方式,它的本質是基於XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。實現SharedPreferences存儲的步驟如下:

  一、根據Context獲取SharedPreferences對象

  二、利用edit()方法獲取Editor對象。

  三、通過Editor對象存儲key-value鍵值對數據。

  四、通過commit()方法提交數據。

  具體實現代碼如下:

publicclass MainActivity extends Activity {
     @Override
 publicvoid onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
 //獲取SharedPreferences對象
        Context ctx = MainActivity.this;       
        SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
 //存入數據
        Editor editor = sp.edit();
        editor.putString("STRING_KEY", "string");
        editor.putInt("INT_KEY", 0);
        editor.putBoolean("BOOLEAN_KEY", true);
        editor.commit();
        
 //返回STRING_KEY的值
        Log.d("SP", sp.getString("STRING_KEY", "none"));
 //如果NOT_EXIST不存在,則返回值爲"none"
        Log.d("SP", sp.getString("NOT_EXIST", "none"));
     }
 }

   這段代碼執行過後,即在/data/data/com.test/shared_prefs目錄下生成了一個SP.xml文件,一個應用可以創建多個這樣的xml文件。如圖所示: 

   SP.xml文件的具體內容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
 <map>
 <string name="STRING_KEY">string</string>
 <int name="INT_KEY" value="0"/>
 <boolean name="BOOLEAN_KEY" value="true"/>
 </map>

  在程序代碼中,通過getXXX方法,可以方便的獲得對應Key的Value值,如果key值錯誤或者此key無對應value值,SharedPreferences提供了一個賦予默認值的機會,以此保證程序的健壯性。如下圖運行結果中因爲並無值爲"NOT_EXIST"的Key,所以Log打印出的是其默認值:“none”。在訪問一個不存在key值這個過程中,並無任何異常拋出。  

  SharedPreferences對象與SQLite數據庫相比,免去了創建數據庫,創建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的數據類型,比如其無法進行條件查詢等。所以不論SharedPreferences的數據存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite數據庫這樣的其他數據存儲方式。



發佈了9 篇原創文章 · 獲贊 4 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章