我尝试使用RxAndroid
button.setOnClickListener(view -> restApiFactory.testService().getListTest(7)
.subscribeOn(Schedulers.io())
.subscribe(new Observer<List<Test>>() {
我收到错误
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
我没有AndroidSchedulers.mainThread()
答案 0 :(得分:12)
你需要从主线程中操纵UI
所以为了做到这一点你需要告诉rxandroid通知主线程的变化所以使用
button.setOnClickListener(view -> restApiFactory.testService().getListTest(7)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
// ^^^^^^^^^^
.subscribe(new Observer<List<Test>>() {
要获得此功能,需要依赖
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
并且您当前的依赖项用于进行改造返回rxAndroid
类型响应。