日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 功能防抖,Android RxJava 实战系列:功能防抖

發布時間:2023/12/16 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 实战系列:功能防抖的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。