Я работаю с Rxjava2,NetworkOnMainThreadException когда Наблюдаемые subscrible rxjava
Я использую flatmap
в RxJava с ниже структуры:
Observable1.flatmap()
и вернуться к наблюдаемым 2.
ниже кодов:
getApi().createUser(os, deviceToken)
.compose(view.regisObserver())
.subscribeOn(Schedulers.io())
.flatMap(result -> {
String user_token = result.data.user_token;
getPreferenceStore().setAuthToken(user_token);
setReadPolicy();
Observable<ObjectDto<UserProfile>> obs = getApi().updateProfile(null, null, null);
obs.compose(view.regisObserver());
return obs;
})
.subscribe(result-> {
getPreferenceStore().setUserId(result.data.user_id);
// view.onUpdateProfile();
}, Throwable::printStackTrace);
@Override
public <T> ObservableTransformer<T, T> regisObserver() {
return observable -> observable.compose(prepare())
.doOnSubscribe(disposable -> showProgressDialog())
.doOnComplete(this::closeProgressDialog)
.doOnError(throwable -> {
if (BuildConfig.DEBUG) {
throwable.printStackTrace();
}
showProgressDialog();
closeProgressDialog();
});
}
Код компилируется без ошибок. Он получил ошибку во время выполнения NetworkErrorOnMainThread
. Я не знаю, как это исправить.
Вы не должны запускать сетевые вызовы MainThread, использовать отдельный поток. –
Cmon, было так много ответов ... http://stackoverflow.com/questions/34349334/rxjava-and-retrofit2-networkonmainthreadexception http://stackoverflow.com/questions/27687907/android-os-networkonmainthreadexception- using-rxjava-on-android http://stackoverflow.com/questions/33390532/networkonmainthreadexception-with-retrofit-beta2-and-rxjava http://stackoverflow.com/questions/23447077/android-rxjava-non-blocking – Than