问题在于:我有ObservableSubscriber。我尝试在Observable线程中启动.io(),因为它可与文件和zip归档程序一起使用(我不会显示代码-太大),但是Observable却无能为力!:

Observable<Double> creatingObservable = getCreatingObservable(image);
Subscriber<Double> creatingSubscriber = getCreatingSubscriber();

creatingObservable
        .subscribeOn(Schedulers.io())
        .subscribe(creatingSubscriber);

如果我在没有subscribeOn()的情况下启动代码,则一切正常。有什么问题以及如何解决

附言System.out.println()也不起作用。问题有所有调度程序的线程。

最佳答案

看来问题在于主线程在creatingObservable之前终止可以发出任何值。

一个简单的解决方案:使主线程等待足够长的时间,以使creatingObservable能够发出/完成。

Observable<Double> creatingObservable = getCreatingObservable(image);
Subscriber<Double> creatingSubscriber = getCreatingSubscriber();

creatingObservable
        .subscribeOn(Schedulers.io())
        .subscribe(creatingSubscriber);

Thread.sleep(5000); //to wait 5 seconds while creatingObservable is running on IO thread

07-26 09:15