I have a preferenceActivity that implements OnSharedPreferenceChangeListener and I have implemented the onSharedPreferenceChanged method. I register and unregister a listener in onResume and onPause() using the keyword "this"
All works well so far but I am concerned that my listener will be garbage collected, as described in this post. Is what I am doing bad practice? Seems too easy but if it not broken I don't want to fix it!
My activity
public class MyPreferences extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
//blah blah blah
}
My onSharedPreferenceChangeListener
@Override
public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
doMyStuff();
} //onSharedPreferenceChanged
onResume() & onPause()
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
} //end onResume
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
} //end onPause