Closed berial closed 8 years ago
@Berial ,能提供更详细的问题描述么(例如代码)
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("手机号错误")
}
}
@Berial 你在哪里调用的 getPcode()
?感觉是你使用 RxJava 有误,没有在 UI 线程进行订阅。
还有就是,新的版本中的 Presenter 已经改为使用 Fragment 实现了,你的代码透露了你不是使用 0.8.x
版本的 kotgo。
卧槽果然,之前是在onViewCreated里写的: RxView.clicks(btnGetPcode) .debounce(150, TimeUnit.MILLISECONDS) .subsribe { presenter.getPcode() }
把subsribe改成onUI就妥了
OK~
我在自己写的Presenter里定义了ViewInterface并在其中定义了一系列方法,在Fragment中实现了ViewInteface并重写了方法,但是所有的方法都不在main线程里,而是在一个RxComputationThreadPool中,请问该如何解决