我一直在关注一些教程,并说它必须取消注册OnPreferenceChangeListener
。
有人可以告诉我为什么吗?
答案 0 :(得分:1)
首先,我们来看看如何完成注册。
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
prefs.registerOnSharedPreferenceChangeListener(this);
我们可以看到SharedPreferences
是一个全局对象,因为getApplicationContext()
返回当前进程的单一/静态/全局应用程序对象。现在,有两个原因可以解除注册OnPreferenceChangeListener
:
SharedPreferences
包含一个侦听器列表,如果您想在不同的地方侦听同一事件,则会调用第一个侦听器(一个未注册的侦听器)。注意:我认为这个解释已经足够好了,但是这个答案可供编辑使用。