MergeAdapter - удаление дочернего адаптера + unregisterDataSetObserver ()? - PullRequest
0 голосов
/ 10 ноября 2011

Я хотел бы удалить адаптер из MergeAdapter, согласно этому вопросу:

Удалить представление из MergeAdapter

Нужно ли очистить наблюдателязарегистрирован с дочерним адаптером в addAdapter ()?Например:

public void addAdapter(ListAdapter adapter) {
    pieces.add(adapter);
    adapter.registerDataSetObserver(new CascadeDataSetObserver()); /// *** ///
}

public void removeAdapter(int position) {
    ListAdapter adapter = pieces.remove(position);
    adapter.unregisterDataSetObserver(????);  //// ??? ////
}

Нужно ли здесь отменить регистрацию сервера данных?

1 Ответ

1 голос
/ 11 ноября 2011

Вы могли бы, если хотите.Однако имейте в виду, что все, что делает registerDataSetObserver(), фактически устанавливает ссылку с добавленным ListAdapter до MergeAdapter, а не наоборот.,Следовательно, до тех пор, пока вы будете сбрасывать удаленный ListAdapter, зарегистрированный наблюдатель также должен собирать мусор.

...