を使用して検索私は、ユーザーの検索を処理し、(最後の文字の後に検索1秒)を入力する上での一時停止に対処するためのdebounce()
を使用しています:アンドロイド、RXJava、デバウンス
RxSearchView.queryTextChanges(searchView)
.debounce(1, TimeUnit.SECONDS)
.subscribe(new Action1<CharSequence>() {
@Override
public void call(CharSequence charSequence) {
presenter.loadUsers(charSequence.toString());
}
});
ので、ユーザは、すべての文字を削除した場合、それは1秒待ってからリストをロードします。どのように処理してリストを即座にロードできますか?異なるパラメータを持つだけdebounce
オペレータが必要とされている、あなたの場合は
RxSearchView.queryTextChanges(searchView)
.debounce(1, TimeUnit.SECONDS)
.mergeWith(Observable.just("")) // manually tigger onNext with empty search
.subscribe(new Action1<CharSequence>() {
@Override
public void call(CharSequence charSequence) {
presenter.loadUsers(charSequence.toString());
}
});
debounce機能で 'Observable.just(charSequence)'の代わりに 'Observable.empty()'を使いたいかもしれません。より効率的でなければなりません。 – JohnWowUs