我想要一个干净的方法来检查偏好是否改变了。应在preferenceActivity完成时进行此检查。
我目前的想法是使用oldInterval等名称将感兴趣的值存储在onCreate中,并将它们与onDestroy时的值进行比较。但是,我必须为每个感兴趣的偏好指定这个。相反,我想在onCreate上存储整个SharedPreferences对象的备份,因此我可以在onDestroy上查询它。希望我的问题很清楚,你可以提供帮助。
答案 0 :(得分:1)
有两个选项 - SharedPreferences.getAll()
将返回SharedPreferences对象中所有值的Map
。您可以使用它来比较之前和之后。
可能更好的选择是使用SharedPreferences.registerOnSharedPreferenceChangeListener()
,这将设置一个监听器,只要您的某个共享首选项发生更改,就会调用该监听器。你可以设置一个布尔值,你马上就会知道。
这些都记录在SharedPreferences Javadoc页面
中