SharedPreferences存儲共享變量的文件路徑位於“/data/data/應用程序包/shared_prefs”目錄下,通過adb shell,可以看到如下所示:
查看當前目錄:
# pwd
/data/data/com.min.ijoke/shared_prefs
顯示當前目錄下的文件:
# ls
min_ijoke.xml // 此文件就是存儲SharedPreferences變量的文件
AppSettings.xml
PushFlag.xml
Finalize_Flag.xml
ShowAdFlag.xml
Start_Tag.xml
查看SharedPreferences變量的文件內容,都是鍵值對形式存儲在xml文件中的。
SharedPreferences保存的數據主要是類似於配置信息格式的數據,因此它保存的數據主要是簡單類型的key - value對。
SharedPreferences接口主要負責讀取應用程序的Preferences數據,它提供如下常用方法來訪問SharedPreferences中的key - value對。
1、boolean contains(String key):判讀SharedPreferences 是否包含特定key的數據。
2、abstract Map<String ,?>getAll():獲取SharedPreferences數據裏全部的key - value 對。
3、boolean getXxx(String ,xxx value):獲取SharedPreferences數據裏指定key對應的value。如果該key不存在,則返回默認值value。其中xxx可以是boolean、float、int、long、String等各種基本類型的值。
SharedPreferences接口本身沒有提供寫入數據的能力,二十通過SharedPreferences的內部接口,SharedPreferences調用edit()方法即可獲取它所對應的Editor對象。Editor提供如下方法來向SharedPreferences寫入數據。
1、SharedPreferences.Editor.clear():清空SharedPreferences裏所有數據。
2、SharedPreferences.Editor.putXxx(String key ,xxx value):向SharedPreferences存入指定key對應的數據。其中xxx可以是boolean、float、int、long、String等各種基本類型的值。
3、SharedPreferences.Editor.remove(String key):刪除SharedPreferences裏指定key對應的數據項。
4、boolean commit():當Editor編輯完成後,調用該方法提供修改
SharedPreferences本身是一個接口,程序無法直接創建SharedPreferences實例,只能通過Context提供的getSharedPreferences(String name,int mode)方法來獲取SharedPreferences實例,該方法的第二個參數支持如下幾個值。
1、Context.MODE_PRIVETE:指定該SharedPreferences數據只能被本應用程序讀寫。
2、Context.MODE_WORLD_READABLE:指定該SharedPreferences數據能被其他應用程序讀,但不能寫。
3、Context.MODE_WORLD_WRITEABLE:指定該SharedPreferences數據能被其他應用程序讀寫。