【发布时间】:2016-11-02 15:18:50
【问题描述】:
我是 RxAndroid 新手,我想了解为什么按钮点击事件停止工作。我正在使用带有 Observables 的 RxBinding 和 Retrofit 2。
Subscription loginButtonSubscription = RxView.clicks(loginBtn)
.throttleFirst(Constants.CLICK_THRESHOLD_MILLIS, TimeUnit.MILLISECONDS)
.flatMap(aVoid -> authApi.login(new LoginUserRequest(emailEditText.getText().toString(), passwordEditText.getText().toString())))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(verifyEmailResponse -> Log.i("TEST", "onNext: " + verifyEmailResponse.success),
throwable -> handleError(throwable));
如果我收到错误(来自登录改造服务),则方法 handleError 会正常执行,但之后不再触发 click 事件。
我做错了什么,但我无法理解。有更好的方法来处理改造错误?
谢谢
【问题讨论】:
-
我已经检查过但不是解决方案。
-
是的。因为 OnError 在源 Observable 中调用 OnComplete,所以您的订阅不再“有效”。而 PublishSubject 不会这样做。
-
@AndroidRuntimeException 你找到解决方案了吗?当我尝试一次进行许多 API 调用(Retrofit + RxAndroid)时,有时我的按钮无法再点击了!
标签: android rx-android rx-binding