SharedPreferences簡介
在Android開發(fā)過程中,有時候我們需要保存一些簡單的軟件配置等簡單數(shù)據(jù)的信息,而如果我們直接用數(shù)據(jù)庫存儲的話又不太方便,在這里我們就可以用到SharedPreferences,SharedPreferences保存的數(shù)據(jù)主要是類似于配置信息格式的數(shù)據(jù),因此保存的數(shù)據(jù)主要是簡單類型的鍵值對(key-value),它保存的是一個XML文件。
SharedPreferences常用的屬性和方法
方法名稱
描述
public abstract boolean contains (String key)
判斷SharedPreferences是否包含特定key的數(shù)據(jù)
public abstract SharedPreferences.Editor edit ()
返回一個Edit對象用于操作SharedPreferences
public abstract Map getAll ()
獲取SharedPreferences數(shù)據(jù)里全部的key-value對
getXXX(String key,XXX defvlaue)
獲取SharedPreferences數(shù)據(jù)指定key所對應(yīng)的value,如果該key不存在,返回默認(rèn)值defValue。其中XXX可以是boolean、float、int、long、String等基本類型的值
由于SharedPreference是一個接口,而且在這個接口里并沒有提供寫入數(shù)據(jù)和讀取數(shù)據(jù)的能力。但是在其內(nèi)部有一個Editor內(nèi)部的接口,Edit這個接口有一系列的方法用于操作SharedPreference。
Editor接口的常用方法
方法名稱
描述
public abstract SharedPreferences.Editor clear ()
清空SharedPreferences里所有的數(shù)據(jù)
public abstract boolean commit ()
當(dāng)Editor編輯完成后,調(diào)用該方法可以提交修改,而且必須要調(diào)用這個數(shù)據(jù)才修改
public abstract SharedPreferences.Editor putXXX (String key, boolean XXX)
向SharedPreferences存入指定的key對應(yīng)的數(shù)據(jù),其中XXX可以是boolean、float、int、long、String等基本類型的值
public abstract SharedPreferences.Editor remove (String key)
刪除SharedPreferences里指定key對應(yīng)的數(shù)據(jù)項
SharedPreferences是一個接口,程序是無法創(chuàng)建SharedPreferences實例的,可以通過Context.getSharedPreferences(String name.int mode)來得到一個SharedPreferences實例
name:是指文件名稱,不需要加后綴.xml,系統(tǒng)會自動為我們添加上。一般這個文件存儲在/data/data//shared_prefs下(這個面試常問到)
mode:是指定讀寫方式,其值有三種,分別為:
Context.MODE_PRIVATE:指定該SharedPreferences數(shù)據(jù)只能被本應(yīng)用程序讀、寫
Context.MODE_WORLD_READABLE:指定該SharedPreferences數(shù)據(jù)能被其他應(yīng)用程序讀,但不能寫
Context.MODE_WORLD_WRITEABLE:指定該SharedPreferences數(shù)據(jù)能被其他應(yīng)用程序讀寫。