将共享偏好与早期状态进行比较

时间:2011-10-22 22:52:53

标签: android sharedpreferences

我想要一个干净的方法来检查偏好是否改变了。应在preferenceActivity完成时进行此检查。

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

1 个答案:

答案 0 :(得分:1)

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

可能更好的选择是使用SharedPreferences.registerOnSharedPreferenceChangeListener(),这将设置一个监听器,只要您的某个共享首选项发生更改,就会调用该监听器。你可以设置一个布尔值,你马上就会知道。

这些都记录在SharedPreferences Javadoc页面