Android — 使用 SharedPreferences 本地保存 key-value 數據

如何獲取 SharedPreferences

獲取 SharedPreferences 有 2 種方式,第一種以名稱爲索引,第二種以 Activity 爲索引。html

1. getSharedPreferences()java

用於知足如下三種需求:須要多個 SharedPreferences 對象、但願 SharedPreferences 以名稱來索引、須要多個 Activity 共用 SharedPreferences,示例代碼以下:android

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

其中, Context 能夠爲任意類型,並非必須爲 Activity 的 Context。app

2. getPreferences()code

若是一個 Activity 只須要一個 SharedPreferences 對象,那麼能夠直接調用這個方法,不須要提供名稱,這樣的 SharedPreferences 以 Activity 爲索引。htm

示例代碼以下:對象

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

若是但願該 SharedPreferences 對象能夠被其餘任何 app 訪問,能夠用 MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 來建立 SharedPreferences 文件。索引

如何寫 SharedPreferences

經過 sharedPref.edit() 方法獲得 editor 後,能夠用 putInt() 等方法來寫入數據,並經過 commit() 方法來提交,示例代碼以下:get

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

commit()是當即執行的,若是採用 apply() 方法則會在空閒時執行,有利於提升 app 的流暢度。string

如何讀SharedPreferences

讀 SharedPreferences 與寫相對應,示例代碼以下:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

via Android SharedPreference

相關文章
相關標籤/搜索