注册和取消注册onSharedPreferenceListeners

时间:2012-05-22 19:02:09

标签: android listener sharedpreferences

我有两个关于注册/取消注册 OnSharedPreferenceChangeListener 对象的问题:

问题1 :我是否需要在 SharedPreferences 对象的同一个实例上调用 registerOnSharedPreferenceChangeListener unregisterOnSharedPreferenceChangeListener 为了正确注册和取消注册共享首选项的更改,还是在为同一个首选项文件获取的两个 SharedPreferences 实例上调用两个方法是否足够?

问题2 :传递给 registerOnSharedPreferenceChangeListener OnSharedPreferenceChangeListener 实例必须与传递给 unregisterOnSharedPreferenceChangeListener 的实例完全相同,即我无法使用新的OnSharedPreferenceChangeListener(){...} 为这两种方法动态创建一个新实例

问题3 :我可以注册多个 OnSharedPreferenceChangeListener 对象吗?

1 个答案:

答案 0 :(得分:2)

作为SharedPreferences监听器的接口只是一个“实现”OnSharedPreferenceChangedListener的类,这意味着该类可以处理SharedPrefs将发送它的消息。

因此,无论您注册实例,您都需要使用相同的引用来注销它。

Q1)是的,在您的共享偏好超出范围之前取消注册,即在onCreate中注册取消注册onPause

Q2)是的,你做不到,让一个新实例成为一个全新的对象。

Q3)您必须检查the source实现,以查看该类是否保留了寄存器列表,或者它是否只允许一个。 (有reg和unreg让我相信你可以设置多个听众,但检查)