Android: 关闭包含侦听器的对话框

Android: dismissing dialogs containing listeners

我正在使用两个 classes,模型 class 和 android 中的一个对话框 class。模型 class 保留了一个监听器列表,对话框将添加到该列表。

public class SmartChannelModel {

    private List<OnResultsChanged> mOnResultsChanged
    public interface OnResultsChanged {
        void onResultsChanged(int changed);
    }

    public SmartChannelModel() {
        mOnResultsChanged = new List<OnResultsChanged>();
    }

    public void addResultListener(OnResultsChanged listener) {
        mOnResultsChanged.add(listener);
    }
}

还有我的对话class:

public class InfoDialog extends AppCompatDialog {
    private SmartChannelModel model;
    public InfoDialog(Context context, SmartChannelModel model) {
        super(context);
        this.model = model;
    }
    public void update() {
        //do some stuff
    }
    @Override
    protected void onStart() {
        super.onStart();
        model.addOnResultsChanged(new OnResultsChanged() {
            @Override
            void onResultsChanged(int changed) {
                update();
            }
        });
    }
}

当我创建和关闭此对话框时,是否会对其执行垃圾回收,因为该对话框向模型添加了一个侦听器 class?我是否需要专门删除我添加的任何侦听器?

感谢您的帮助!

据我所知是的,如果 class 中的任何地方都没有提及它。