2011-10-22 52 views
0

我想要一个干净的方法来检查首选项是否更改。该检查应在preferenceActivity完成时完成。将sharedpreferences与早期状态比较

我目前的想法是将感兴趣的值存储在onCreate中,使用像oldInterval这样的名称并将它们与onDestroy时的值进行比较。但是,我必须为每个感兴趣的偏好指定这个。相反,我想在onCreate中存储整个SharedPreferences对象的备份,所以我可以在onDestroy中查询它。希望我的问题很清楚,你可以提供帮助。

回答

1

有两个选项 - SharedPreferences.getAll()将返回SharedPreferences对象中所有值的Map。你可以使用它来比较之前和之后。

可能更好的选择是使用SharedPreferences.registerOnSharedPreferenceChangeListener(),它将设置一个侦听器,当您的共享首选项发生更改时会调用该侦听器。他们你可以设置一个布尔值,你会立即知道。

这是所有记录在SharedPreferences Javadoc

+0

getAll方法是我想要的。我应该更清楚地阅读文档,对不起。 –