RxJava

RxJava<第二十七篇>:搜索优化

2019-04-01  本文已影响3人  NoBugException

throttleWithTimeoutdebounce是一个意思:

假设指定时间为1秒, 那么被观察者发送第一条数据时,等待1秒之后仍然没有发送第二条数据,那么观察者将收到该数据,如果还没到1秒钟就重新发送了数据,那么第一条数据就被取消发送。

RxBindingthrottleWithTimeout相结合或者RxBindingdebounce相结合都可以对搜索进行优化。

代码如下:

    final EditText telphone = findViewById(R.id.telphone);

    final TextView search_result = findViewById(R.id.search_result);

    RxTextView.textChanges(telphone)
            //.throttleWithTimeout(2, TimeUnit.SECONDS)
            .debounce(2, TimeUnit.SECONDS)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<CharSequence>() {
                @Override
                public void accept(CharSequence charSequence) throws Exception {
                    search_result.setText("搜索结果:"+charSequence);
                }
            });
上一篇 下一篇

猜你喜欢

热点阅读