【发布时间】:2015-07-06 07:48:32
【问题描述】:
很多类似的问题,但我仍然找不到答案。所以我有一个片段,我想在其中收听PreferenceActivity 的变化。
文档说在onResume()注册监听器并在onPause()取消注册:
为了在活动中进行适当的生命周期管理,我们建议您注册和取消注册您的 SharedPreferences.OnSharedPreferenceChangeListener 期间 onResume() 和 onPause() 分别回调:
我假设他们指的是从 PreferenceActivity onResume/onPause 方法中注册侦听器,因为如果您在 Fragment 的 onPause() 中取消注册侦听器,那么它将不会侦听更改。
那么相反的解决方案是 - 在onPause()注册并在onResume()取消注册?
谢谢!
【问题讨论】:
-
再次感谢,最后我启动了result的preferenceactivity并响应了onActivityResult()中的preferences变化。这主要是因为我在 PreferenceActivity 中做了一些不寻常的事情,即当一个偏好发生变化时,它会影响另外两个偏好。因此,我正在以编程方式更改偏好活动中的偏好,这导致侦听器触发了 3 次我不想要的。