4

首先,我来自iOS环境,所以这就是为什么这个问题可能很明显。

我知道Android有垃圾收集器,但对象仍然引用(保留)其他对象,我的理解是GC只会删除没有引用的对象(在这一点上我可能错了)。看这段代码:

private void addDefaultTextWatcher(final EditText editText) {
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                value = s.toString();
                if (getOnValidate() != null) {
                    getOnValidate().validate(editText, s.toString());
                }
            }
        });
    }

editText有一个TextWatcher匿名类的引用,并且该类也有一个引用editText。垃圾收集器会为我处理这个问题吗?如果没有...建议的方法是什么?

4

1 回答 1

6

Java 垃圾收集器足够聪明,可以识别循环引用。你应该什么都不做。

于 2013-07-16T19:02:29.670 回答