У меня есть адаптер. у него есть флажки, которые в случае изменения данных изменяют их состояние. Для этого я регистрируюсь на SharedchangeListener. Работает нормально. Но остается одна проблема. Если фрагмент / активность на Destroyed, мне нужно отменить регистрацию этого слушателя от адаптера (или это необязательно в случае с адаптером?), Как правильно решить эту проблему?
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
private SharedPreferences sp;
public CustomAdapter(List<Model> list) {
this.list = list;
sp = SharedPref.getSp();
}
class ViewHolder extends RecyclerView.ViewHolder
implements SharedPreferences.OnSharedPreferenceChangeListener {
ViewHolder(View view) {
super(view);
//...views
sp.registerOnSharedPreferenceChangeListener(this);
}
private void bind(int position) {
//...logic
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
//...update view
}
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.bind(position);
}
//...