android 功能防抖,Android RxJava 实战系列:功能防抖
前言
Rxjava,由于其基于事件流的鏈式調用、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎。
Github截圖
RxJava如此受歡迎的原因,在于其提供了豐富 & 功能強大的操作符,幾乎能完成所有的功能需求
今天,我將為大家帶來 Rxjava創建操作符的常見開發應用場景:功能防抖需求 ,并結合Retrofit與RxJava 實現,希望大家會喜歡。
本系列文章主要基于 Rxjava 2.0
接下來的時間,我將持續推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、應用場景、背壓等等 ,有興趣可以繼續關注Carson_Ho的安卓開發筆記!!
示意圖
目錄
示意圖
1. 需求場景
示意圖
2. 功能說明
示意圖
注:關于 Rxjava中的throttleFirst() 操作符的使用請看文章:Android RxJava:過濾操作符 全面講解
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() {
@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次網絡請求
示意圖
4. Demo地址
5. 總結
本文主要講解了 Rxjava的實際開發需求場景:功能防抖需求
下面我將結合 實際場景應用 & Rxjava的相關使用框架(如Retrofit、Eventbus) ,繼續對 Android中 Rxjava 的實際開發需求場景進行深入講解 ,有興趣可以繼續關注Carson_Ho的安卓開發筆記
請幫頂 / 評論點贊!因為你的鼓勵是我寫作的最大動力!
總結
以上是生活随笔為你收集整理的android 功能防抖,Android RxJava 实战系列:功能防抖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Revel框架搭建的后台管理系统脚手架
- 下一篇: 三星android系统应用,三星Andr