android 功能防抖,Android RxJava 实战系列:功能防抖
前言
Rxjava,由于其基于事件流的鏈式調(diào)用、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發(fā)者的歡迎。
Github截圖
RxJava如此受歡迎的原因,在于其提供了豐富 & 功能強大的操作符,幾乎能完成所有的功能需求
今天,我將為大家?guī)?Rxjava創(chuàng)建操作符的常見開發(fā)應用場景:功能防抖需求 ,并結(jié)合Retrofit與RxJava 實現(xiàn),希望大家會喜歡。
本系列文章主要基于 Rxjava 2.0
接下來的時間,我將持續(xù)推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、應用場景、背壓等等 ,有興趣可以繼續(xù)關(guān)注Carson_Ho的安卓開發(fā)筆記!!
示意圖
目錄
示意圖
1. 需求場景
示意圖
2. 功能說明
示意圖
注:關(guān)于 Rxjava中的throttleFirst() 操作符的使用請看文章:Android RxJava:過濾操作符 全面講解
3. 具體實現(xiàn)
// 注冊控件
Button button;
button = (Button)findViewById(R.id.button);
/*
* 1\. 此處采用了RxBinding:RxView.clicks(button) = 對控件點擊進行監(jiān)聽,需要引入依賴:compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
* 2\. 傳入Button控件,點擊時,都會發(fā)送數(shù)據(jù)事件(但由于使用了throttleFirst()操作符,所以只會發(fā)送該段時間內(nèi)的第1次點擊事件)
**/
RxView.clicks(button)
.throttleFirst(2, TimeUnit.SECONDS) // 才發(fā)送 2s內(nèi)第1次點擊按鈕的事件
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Object value) {
Log.d(TAG, "發(fā)送了網(wǎng)絡請求" );
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "對Error事件作出響應" + e.toString());
// 獲取異常錯誤信息
}
@Override
public void onComplete() {
Log.d(TAG, "對Complete事件作出響應");
}
});
測試結(jié)果
在2s內(nèi),無論點擊多少次,也只會發(fā)送1次網(wǎng)絡請求
示意圖
4. Demo地址
5. 總結(jié)
本文主要講解了 Rxjava的實際開發(fā)需求場景:功能防抖需求
下面我將結(jié)合 實際場景應用 & Rxjava的相關(guān)使用框架(如Retrofit、Eventbus) ,繼續(xù)對 Android中 Rxjava 的實際開發(fā)需求場景進行深入講解 ,有興趣可以繼續(xù)關(guān)注Carson_Ho的安卓開發(fā)筆記
請幫頂 / 評論點贊!因為你的鼓勵是我寫作的最大動力!
總結(jié)
以上是生活随笔為你收集整理的android 功能防抖,Android RxJava 实战系列:功能防抖的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Revel框架搭建的后台管理系统脚手架
- 下一篇: 三星android系统应用,三星Andr