使用RxJava能够更简单的监听EditText文本变化,即使用debounce操作符处理不断产生的文本变化事件。试用Handler 会造成内存泄漏,所以推荐使用RxJava的方法
debounce操作符对源Observable每产生一个结果后,如果在规定的间隔时间内没有别的结果产生,则把这个结果提交给订阅者处理,否则忽略该结果。
RxTextView.textChangeEvents(etClearSearch) .debounce(300, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<TextViewTextChangeEvent>() { @Override public void onCompleted() { } @Override public void one rror(Throwable e) { } @Override public void onNext(TextViewTextChangeEvent textViewTextChangeEvent) { //自己要操作的。。。 } });