在我维护的一些代码中,我注意到注册共享首选项更改侦听器的两种不同方法:
(1) 直截了当的方法,其中包含已注册成员函数的类实现SharedPreferences.OnSharedPreferenceChangeListener。
preferences.registerOnSharedPreferenceChangeListener(mImageView);
(2) 间接方法,其中可能包含已注册成员函数的类由于某种原因倾向于不实现SharedPreferences.OnSharedPreferenceChangeListener,而是选择定义和实例化一个专用于该侦听器的全新类:
SharedPreferences.OnSharedPreferenceChangeListener mPreferencesListener =
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
// do here what's needed to do
}
};
....
preferences.registerOnSharedPreferenceChangeListener(mPreferencesListener);
两者都运作良好,但现在我想知道:一种方法比另一种更可取吗?
是否存在实际上只能使用这两种方法中的一种的情况?