2
當您調用SharedPreferences.Editor上的提交時,它是否僅回寫 已更改的值,還是回寫其鏈接的SharedPreference對象中的所有值,而不管它們是否已更改?SharedPreferences.Editor commit()只回寫所做的更改或整套首選項?
當您調用SharedPreferences.Editor上的提交時,它是否僅回寫 已更改的值,還是回寫其鏈接的SharedPreference對象中的所有值,而不管它們是否已更改?SharedPreferences.Editor commit()只回寫所做的更改或整套首選項?
提交自己的喜好從這個編輯器的SharedPreferences對象是編輯改變回來。這會自動執行請求的修改,替換SharedPreferences中當前的任何內容。
它似乎表明數據只被修改,如果它是相同的,不會覆蓋。請記住,多次調用commit()
只會產生一個更改(最後一個)。
是的,我也看到了這一點,並希望那是什麼意思,但我想看看是否有人肯定/通過經驗是否在SharedPreferences中暴露未改變的值.. – 2012-07-22 19:28:06
「Clobbers」?怎麼會這樣? – Eric 2012-07-22 19:31:22
查看SharedPreferencesImpl的源代碼(https://github.com/CyanogenMod/android_frameworks_base/blob/jellybean/core/java/android/app/SharedPreferencesImpl.java),編輯器維護一個修改的HashMap並且僅適用於這些修改。沒有修改未修改的值。 – 2012-07-22 20:08:56