1 回答

TA貢獻2065條經(jīng)驗 獲得超14個贊
您正在使用事件.subscribeOn(Schedulers.io())源RxView.clicks(this.btnNext)。這意味著RxView將在 IO 線程上訂閱,但這是不允許的。您應該Single<String>通過 為您的源配置調(diào)度程序flatMapSingle(key -> new Api(key).id().subscribeOn(Schedulers.io()))。所以完整的代碼應該是:
RxView.clicks(this.btnNext)
.map(none -> this.editTextKey.getText().toString())
.filter(x -> !x.isEmpty())
.flatMapSingle(key -> new Api(key).id().subscribeOn(Schedulers.io()))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::showId, err -> {
Log.e(this.getClass().getSimpleName(), "Login error", err);
})
現(xiàn)在網(wǎng)絡操作將在IO線程上進行,查看訂閱在主線程上。
添加回答
舉報