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