我們在開發軟件的時候,常需要向用戶提供軟件參數設置功能,例如我們常用的微信,用戶可以設置是否允許陌生人添加自己為好友.對於軟件配置參數的保存,如果是在window下通常我們會采用ini文件進行保存.如果是J2EE下面,我們會采用properties屬性文件或者xml進行保存.在我們的Android應用中又適合采用什麼方式保存軟件配置參數呢?Android平台給我們提供了一個SharedPreferences類,它是一個輕量級應用程序內部輕量級的存儲方案,特別適合用於保存軟件配置參數,比如boolean,int,float,long,String等數據.使用SharedPreferences保存數據,其實質是采用了xml文件存放數據,路徑為:/data/data/<package name>/shared_prefs.
獲取SharedPreferences的兩種方式:
1 調用Context對象的getSharedPreferences()方法
2 調用Activity對象的getPreferences()方法
兩種方式的區別:
調用Context對象的getSharedPreferences()方法獲得的SharedPreferences對象可以被同一應用程序下的其他組件共享.
調用Activity對象的getPreferences()方法獲得的SharedPreferences對象只能在該Activity中使用.
SharedPreferences的四種操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容
Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件.
MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取.
MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入.
將數據保存至SharedPreferences:
SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="xixi";
String age="22";
editor.putString("name", name);
editor.putString("age", age);
editor.commit();
從SharedPreferences獲取數據:
SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "defaultname");
String age=preferences.getString("age", "0");