MergeAdapter - 删除子适配器+ unregisterDataSetObserver()?

时间:2011-11-10 19:17:15

标签: android commonsware-cwac

我想根据这个问题从MergeAdapter中删除适配器:

Remove view from 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?

1 个答案:

答案 0 :(得分:1)

如果你愿意,你可以。但是,请记住,所有registerDataSetObserver()实际上都在设置添加的ListAdapter {{1而不是相反。因此,只要您将丢弃已移除的MergeAdapter,注册观察员也应该进行垃圾收集。