首先,我来自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
。垃圾收集者会为我照顾这个吗?如果不是......建议的方法是什么?
答案 0 :(得分:6)
Java垃圾收集器非常智能,可以识别循环引用。你什么都不做。