Android RxJava操作符的學習---過濾操作符----功能防抖
阿新 • • 發佈:2018-11-09
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次網路請求