2011-10-22 55 views
0

我想要一個乾淨的方法來檢查首選項是否更改。該檢查應在preferenceActivity完成時完成。將sharedpreferences與早期狀態比較

我目前的想法是將感興趣的值存儲在onCreate中,使用像oldInterval這樣的名稱並將它們與onDestroy時的值進行比較。但是,我必須爲每個感興趣的偏好指定這個。相反,我想在onCreate中存儲整個SharedPreferences對象的備份,所以我可以在onDestroy中查詢它。希望我的問題很清楚,你可以提供幫助。

回答

1

有兩個選項 - SharedPreferences.getAll()將返回SharedPreferences對象中所有值的Map。你可以使用它來比較之前和之後。

可能更好的選擇是使用SharedPreferences.registerOnSharedPreferenceChangeListener(),它將設置一個偵聽器,當您的共享首選項發生更改時會調用該偵聽器。他們你可以設置一個布爾值,你會立即知道。

這是所有記錄在SharedPreferences Javadoc

+0

getAll方法是我想要的。我應該更清楚地閱讀文檔,對不起。 –