public class AmountTextWatcher implements TextWatcher {
private final TextView amountTo;
public AmountTextWatcher(TextView amountTo) {
this.amountTo = amountTo;
}
@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) {
Pattern mPattern = Pattern.compile(PatternHolder.amountPattern());
Matcher matcher = mPattern.matcher(s.toString());
if (matcher.find()) {
amountTo.setTextColor(Color.BLACK);
} else {
amountTo.setTextColor(Color.RED);
if (s.length() > 0) s.delete(s.length() - 1, s.length());
}
}
}
创建内存泄漏?我是否需要对它进行引用并在onDestroy(或onDestroyView,无论如何)中清除它。
欢呼声 WOJTEK
答案 0 :(得分:0)
您的AmountTextWatcher
由TextView
持有。 AmountTextWatcher
保留在同一个TextView
上。因此,从垃圾收集的角度来看,这两个对象是同一对象图的一部分。这些物体的寿命将由谁控制其中任何一个来决定。
如果您对AmountTextWatcher
的唯一引用来自TextView
,则只要AmountTextWatcher
TextView
,TextView
就会生效。通常情况下,这与显示AmountTextWatcher
的活动一样长。
IOW,你的TextView
不会是内存泄漏,只要它与之关联的POST
本身不会泄露。