まず、私は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
あります。ガベージ コレクターがこれを処理してくれますか? いいえの場合...推奨されるアプローチは何ですか?