0

根据这个问题,我想从 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(????);  //// ??? ////
}

我们需要在这里注销 datasetobserver 吗?

4

1 回答 1

1

如果你愿意,你可以。但是,请记住,实际上所做的一切都是添加registerDataSetObserver()中设置引用,而不是相反。因此,只要您将丢弃您的 removed ,注册的观察者也应该被垃圾收集。ListAdapter MergeAdapterListAdapter

于 2011-11-10T23:37:30.313 回答