Android SharedPreferences用法及注意點詳解

Android中的SharedPreferences

1.簡介

SharedPreferences,Android中一種應用程序內部輕量級的存儲方式,存取快且簡單,數據以鍵值對的形式存儲,鍵爲String型,值多爲基本數據類型,比如boolean,int,float,long,String等。一般會將複雜類型的數據轉換成Base64編碼,然後將轉換後的數據以字符串的形式保存在 XML文件中,再用SharedPreferences保存。使用SharedPreferences保存數據,其實質是採用了xml文件存放數據。
最常用於應用程序的配置信息存儲,也可用於應用程序間的數據共享。

2.使用方式

  • 存數據
    1 .獲取SharedPreferences對象,三種方式:
    調用Context對象的getSharedPreferences()方法,
    SharedPreferences pre = Context.getSharedPreferences(String name,int mode);
    調用Activity對象的getPreferences()方法,
    SharedPreferences pre = Activity.getPreferences(int mode);
    調用應用默認的preference文件,
    SharedPreferences pre =
    PreferenceManager.getDefaultSharedPreferences(Context)。
    前兩種方式的區別:
    調用Context對象的getSharedPreferences()方法獲得的SharedPreferences對象可以被同一應用程序下的其他組件共享。
    調用Activity對象的getPreferences()方法獲得的SharedPreferences對象只能在該Activity中使用。

    2.獲取Editor對象,即寫入器,使用SharedPreferences對象的edit()方法。

    3.使用寫入器的putXxx()方法存儲鍵值對。如:putString(),putInt()。

    4.使用寫入器的commit()方法保存鍵值對(相當於數據庫事務中的提交commit操作)。

  • 取數據
    1.打開指定名稱的配置文件,即獲取SharedPreferences對象。
    方法同上。

    2.使用SharedPreferences對象的getXxx()方法由鍵名取數據。如:getString(),getInt()。

3.代碼示例:

  • 存數據
SharedPreferences user=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=user.edit();
editor.putString("user_name", "Jack");
editor.putInt("user_age", 22);
editor.commit();
  • 取數據
SharedPreferences user=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("user_name", "null");
int age=preferences.getInt("user_age", 0);

4.其他

  • 方法getSharedPreferences(String name,int mode):
    name:文件名。Android 已默認SharedPreferences 以xml形式保存,所以在填寫name參數時,不可加“.xml”後綴,只要直接寫上文件名即可。
    mode:操作模式。默認的模式爲0或MODE_PRIVATE。SharedPreferences共四種操作模式:
    Context.MODE_PRIVATE:爲默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容。
    Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
    Context.MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取。
    Context.MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
    後兩種用於控制其他應用是否有權限讀寫該文件。

  • 創建的配置文件存放位置可以在Eclipse中查看:
    DDMS — File Explorer — data/data//shared_prefs/user.xml

  • 未解決:
    暫無。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章