【发布时间】:2017-07-19 02:33:05
【问题描述】:
我有一个 EditText 视图和 TextWatcher,在 onTextChanged 方法中,我必须请求服务器从 EditText 字段查询结果。 在我的演示者中,我为此使用 rx,但我需要延迟搜索,直到用户输入结束。此刻我得到了这个:
service.getData(query)
.delaySubscription(REQUEST_DELAY_FROM_SERVER, TimeUnit.MILLISECONDS, Schedulers.io())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
data-> {
getViewState().showData(data);
},
error -> {
Log.e(this.getClass().getSimpleName(), error.getMessage(), error);
}
);
但 delaySubscription 无法按预期工作。它收集所有呼叫,并在延迟后发送每个呼叫。当只发送一次请求时,我必须像使用 handler.postDelayed() 一样做同样的事情。
【问题讨论】:
标签: android retrofit rx-java rx-android