很多类似的问题,但我仍然找不到答案。所以我有一个片段,我想听一下PreferenceActivity
的变化。
文档说明要在onResume()
中注册听众并在onPause()
中取消注册:
为了在活动中进行适当的生命周期管理,我们建议您注册和取消注册 在此期间的SharedPreferences.OnSharedPreferenceChangeListener onResume()和onPause()回调分别为:
我认为他们指的是在PreferenceActivity
onResume/onPause
方法中注册监听器,因为如果你取消注册片段onPause()
中的监听器,那么它将不会监听这些更改。
做反过来的解决方案是这样的 - 即在onPause()
中注册并在onResume()
中取消注册?
谢谢!
答案 0 :(得分:-1)
不是PreferenceActivity通知首选项的更改,而是SharedPreferences它自己。 PreferenceActivity是用于访问SharedPreferences。
的公用用户界面因此,如果您的片段需要监听SharedPreferences更改,那么它应该是注册更改的片段。换句话说,让您的片段实现OnSharedPreferenceChangeListener并在片段onResume
上注册此更改,并按照文档说明取消注册onPause
。
您还需要在片段onResume
上加载首选项,以便onPause
然后onResume
加载首选项的当前状态。