Android RxJava操作符的学习---过滤操作符----功能防抖

1. 需求场景

 

2. 功能说明

 

3. 具体实现

// 注册控件
        Button button;
        button = (Button)findViewById(R.id.button);

        /*
         * 1. 此处采用了RxBinding:RxView.clicks(button) = 对控件点击进行监听,需要引入依赖:compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
         * 2. 传入Button控件,点击时,都会发送数据事件(但由于使用了throttleFirst()操作符,所以只会发送该段时间内的第1次点击事件)
         **/
        RxView.clicks(button)
                .throttleFirst(2, TimeUnit.SECONDS)  // 才发送 2s内第1次点击按钮的事件
                .subscribe(new Observer<Object>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }
                    @Override
                    public void onNext(Object value) {
                        Log.d(TAG, "发送了网络请求" );
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "对Error事件作出响应" + e.toString());
                        // 获取异常错误信息
                    }

                    @Override
                    public void onComplete() {
                        Log.d(TAG, "对Complete事件作出响应");
                    }
                });
  • 测试结果
    2s内,无论点击多少次,也只会发送1次网络请求

猜你喜欢

转载自blog.csdn.net/gumufuyun/article/details/83868067