【发布时间】:2018-04-26 18:46:12
【问题描述】:
我想在 Android 应用程序中实现位置自动完成功能,为此我正在使用 Retrofit 和 RxJava。我想在用户输入内容后每 2 秒做出一次响应。我正在尝试为此使用 debounce 运算符,但它不起作用。它立即给我结果,没有任何暂停。
mAutocompleteSearchApi.get(input, "(cities)", API_KEY)
.debounce(2, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(prediction -> Observable.fromIterable(prediction.getPredictions()))
.subscribe(prediction -> {
Log.e(TAG, "rxAutocomplete : " + prediction.getStructuredFormatting().getMainText());
});
【问题讨论】:
-
看起来您正在消除网络调用的抖动。可能您应该反跳用户输入事件。
标签: android retrofit rx-java rx-java2 debounce