In some code that I support, I noticed two different ways of registering a regular change listener:
(1) A direct approach in which a class containing a registered member function implements a SharedPreferences.OnSharedPreferenceChangeListener .
preferences.registerOnSharedPreferenceChangeListener(mImageView);
(2) An indirect approach in which a class that could contain a registered member function prefers not to implement the SharedPreferences.OnSharedPreferenceChangeListener for some reason and instead chooses to define and instantiate an entire new class intended only for this listener:
SharedPreferences.OnSharedPreferenceChangeListener mPreferencesListener =
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
}
};
....
preferences.registerOnSharedPreferenceChangeListener(mPreferencesListener);
Both work well, but now I'm wondering: is one approach preferable to the other?
, ?