У меня есть preferenceActivity, которое реализует OnSharedPreferenceChangeListener, и я реализовал метод onSharedPreferenceChanged. Я регистрирую и отменяю регистрацию слушателя в onResume и onPause (), используя ключевое слово "this"
Пока все работает хорошо, но я обеспокоен тем, что мой слушатель будет собирать мусор, как описано в этом посте . Что я делаю плохую практику? Кажется слишком легким, но если он не сломан, я не хочу это исправлять!
Моя деятельность
public class MyPreferences extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
//blah blah blah
}
Мой 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