收到此消息时出现错误
rx.exceptions.OnErrorFailedException:尝试将错误传播到Observer.onError时发生错误
但您的订阅已经在处理onError
MyMethodThatRetunsAnObservable(string)
.subscribe(
response -> handleResponse(response),
throwable -> handleError(throwable));
如果由以下原因引起:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
请注意,如果Scheduler是真正的异步,onError通知将在发送线程上的onNext通知之前切断。因此需要指定我们将要观察的UI线程
public static void shortToast(String msg) {
Observable.just(msg)
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(message -> {
Toast.makeText(App.getInstance(), message, Toast.LENGTH_SHORT).show();
});
}
答案 0 :(得分:2)
subscribeOn(AndroidSchedulers.mainThread()
而不是observerOn
。 show log函数在observerOn
之前调用,并在onSubcribe
方法中调用。