继承BaseViewInterface的疑问
berial opened this issue · 5 comments
berial commented
我在自己写的Presenter里定义了ViewInterface并在其中定义了一系列方法,在Fragment中实现了ViewInteface并重写了方法,但是所有的方法都不在main线程里,而是在一个RxComputationThreadPool中,请问该如何解决
berial commented
class RegisterFragment: BaseFragment(), RegisterPresenter.ViewInterface {
overide fun setPhoneError(error: String) {
etPhone.error = error
}
}
class RegisterPresenter(val view: ViewInterface): Presenter(view) {
interface ViewInterface {
fun setPhoneError(error: String)
}
// 获取验证码
fun getPcode() {
...
view.setPhoneError("手机号错误")
}
}
nekocode commented
@berial 你在哪里调用的 getPcode()
?感觉是你使用 RxJava 有误,没有在 UI 线程进行订阅。
还有就是,新的版本中的 Presenter 已经改为使用 Fragment 实现了,你的代码透露了你不是使用 0.8.x
版本的 kotgo。
berial commented
卧槽果然,之前是在onViewCreated里写的:
RxView.clicks(btnGetPcode)
.debounce(150, TimeUnit.MILLISECONDS)
.subsribe { presenter.getPcode() }
把subsribe改成onUI就妥了
nekocode commented
OK~