【问题标题】:Creating a debouncer in RxJava2在 RxJava2 中创建去抖动器
【发布时间】:2019-09-05 20:47:52
【问题描述】:

在 RxJava1 中,您可以通过这种方式创建去抖动器

RxSearchView.queryTextChanges(searchView)
    .debounce(1, TimeUnit.SECONDS) // stream will go down after 1 second inactivity of user
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Consumer<CharSequence>() {
        @Override
        public void accept(@NonNull CharSequence charSequence) throws Exception {
            // perform necessary operation with `charSequence`
        }
    });

根据Wait until the user stops typing before executing a heavy search in searchview

但我不知道如何在 RxJava2 中创建它

【问题讨论】:

  • RxJava 2 使用 io.reactivex.Observable 作为类型,io.reactivex.functions.Consumer 用于 subscribe 重载。请使用queryTextChanges 检查您的类型是否正确。

标签: android rx-java rx-java2


【解决方案1】:

删除

import io.reactivex.functions.Consumer;

添加

import java.util.function.Consumer;

RxSearchView.queryTextChanges(searchView)
    .debounce(1, TimeUnit.SECONDS) // stream will go down after 1 second inactivity of user
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(result -> new Consumer<CharSequence>() {
                @Override
                public void accept(CharSequence charSequence) {
                    // use result
                }
            });

【讨论】:

  • 是否有解决方法,因为它说我只有 19 个时需要 api 24
  • RxJava 根本不适用于 java.util.function.* 所以这绝对是一个错误的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-15
  • 2021-01-26
相关资源
最近更新 更多