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。
(爲啥不推薦呢,應用程序共享數據推薦用 ContentProvider
, BroadcastReceiver
,
and 遠程Service
,這些正式的方式,SharedPreferences屬於非正式的一種)
Activity中有個方法
activity.getPreferences(Context.MODE_PRIVATE);
相當於context.getSharedPreferences("你activity名",Context.MODE_PRIVATE);
最後附兩張圖