Java 可能存在未经处理的内存泄漏
首先,我来自iOS环境,所以这就是为什么这个问题可能是显而易见的 我知道Android有垃圾收集器,但对象仍然引用(保留)其他对象,我的理解是GC只会删除没有引用的对象(这一点可能我错了)。查看此代码:Java 可能存在未经处理的内存泄漏,java,android,garbage-collection,Java,Android,Garbage Collection,首先,我来自iOS环境,所以这就是为什么这个问题可能是显而易见的 我知道Android有垃圾收集器,但对象仍然引用(保留)其他对象,我的理解是GC只会删除没有引用的对象(这一点可能我错了)。查看此代码: private void addDefaultTextWatcher(final EditText editText) { editText.addTextChangedListener(new TextWatcher() { @Override
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
。垃圾收集器会帮我处理这个吗?如果没有。。。建议的方法是什么?Java垃圾收集器足够智能,可以识别循环引用。你什么都不应该做。太棒了,谢谢。在处理Android时,我应该注意哪些情况会导致泄漏或循环引用?到目前为止,我看到的最好的解释是:不是“如果它有引用”,而是“如果它无法访问”。垃圾收集器不是在寻找它可以收集的东西,而是在寻找它不能收集的东西,然后收集其余的东西[稍微过于简单化]