特定の状況では、EditText を作成し、値を別の Fragment に渡し、EditText が属する ViewGroup で removeAllViews を呼び出して、EditText を削除します。
問題は、EditText に関連付けられた InputConnectionWrapper がまだメモリを占有していることです。
上記のヒープ ダンプでは、InputConnectionWrapper が 300 を超えて割り当てられており、かなりのメモリを占有しています。
ただし、Heap Dump が有効な場合、Activity には EditText が 1 つしかないため、対応する EditText により、InputConnectionWrapper が作成されていないと判断されます。
InputConnectionWrapper を閉じるために、次の関数を試しました。
TextKeyListener.clear(editText.getText());
editText.setHint(null);
editText.removeTextChangedListener(this);
editText=null;
// The ViewGroup will then execute removeAllViews.
ただし、InputConnectionWrapper はファイナライズされていないため、時間の経過とともにさらに割り当てられるようです。
InputConnectionWrapper がファイナライズされない理由は何ですか?