public abstract SharedPreferences getSharedPreferences (String name, int mode)

http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String, int)


public abstract SharedPreferences getSharedPreferences (Stringname, intmode)

函數描述:

讀寫 名爲"name"的xml文件中內容(具體目錄爲/data/data/你的包名/shared_prefs文件夾下),本函數會返回一個SharedPreferences對象,通過它你可以在代碼裏讀寫裏面的鍵值對。即使可以被多個線程調用,也是一個名字對應一個對象(單例模式)。如果對象裏的值一改變,調用者們會實時發現變化(線程安全)。


參數

name:訪問的文件名,如果這個文件不存在,當你調用SharedPreferences.edit(),Editor.commit(),這兩個方法後這個文件會自動創建,會提交更改。

mode:訪問模式,0或者 MODE_PRIVATE 是默認的私有模式(只有這個程序可以訪問), MODE_WORLD_READABLE 和MODE_WORLD_WRITEABLE 用來控制其他應用程序的訪問限,MODE_MULTI_PROCESS 表示可以多個應用程序訪問,不過只有在Android2.3以下支持,其他版本是關閉的。

返回

返回一個SharedPreferences對象,通過它你可以在代碼裏讀寫裏面的鍵值對。

SharedPreferences對象的使用方法:

將數據保存至SharedPreferences:
SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
editor.putString("name", "xiaoNi");
editor.putString("age", "24");
editor.commit();
 
從SharedPreferences獲取數據:
SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "defaultname");
String age=preferences.getString("age", "0");


網上有個什麼MODE_APPEND,googleAPI getSharedPreferences函數里根本就沒有這一項,這項是對文件的操作。

而且 MODE_WORLD_READABLE 和MODE_WORLD_WRITEABLE已經不推薦了。所以你可以無腦寫Context.MODE_PRIVATE。

(爲啥不推薦呢,應用程序共享數據推薦用 ContentProviderBroadcastReceiver, and 遠程Service,這些正式的方式,SharedPreferences屬於非正式的一種)

Activity中有個方法

activity.getPreferences(Context.MODE_PRIVATE);

相當於context.getSharedPreferences("你activity名",Context.MODE_PRIVATE);

最後附兩張圖




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