最好的地方放onShared preferenceChangeListener [英] Best place to put onSharedPreferenceChangeListener
问题描述
我想添加一个设置我的应用程序。我已经添加了新的设置,但我不知道在哪里把 OnShared preferenceChangeListener
。我把它的活动,并增加了一个 Log.d()
,而 Log.d()
从不触发。任何想法?
I am trying to add a setting to my app. I have added the new setting but I am not sure where to put OnSharedPreferenceChangeListener
. I put it in the activity and added a Log.d()
, but the Log.d()
is never triggered. Any ideas?
推荐答案
根据的 Android设置文档将是:
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
你应该存储在一个字段变量的监听器(或使用活动对象本身 - 在上面的源代码code),所以它不会被回收。
And you should store the listener in a field variable (or use the Activity object itself - as in the above source code), so that it does not get garbage collected.
即。匿名类对象不能被用作 OnShared preferenceChangeListener
。
I.e. an anonymous class object can't be used as OnSharedPreferenceChangeListener
.
这篇关于最好的地方放onShared preferenceChangeListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!