我已经通过注册了一个钩子

RxJavaHooks.setOnScheduleAction(new MyOnScheduleAction());


并使用创建了一个自定义的调度程序(用于测试)

Scheduler scheduler = Schedulers.from(Executors.newSingleThreadExecutor());


但是下面的代码没有调用注册的钩子:

Observable.create(subscriber -> {
    subscriber.onNext("Hi");
    subscriber.onComplete();
}).subscribeOn(scheduler).subscribe(myTestSubscriber);


但是,如果我将subscribeOn(scheduler)替换为subscribeOn(Schedulers.io())(或者将subscribeOn(Schedulers.computation())替换),该挂钩将按预期方式被调用。

这是预期的行为吗?我正在使用RxJava 1.1.8。

最佳答案

这是Schedulers.from()的错误,将在1.1.9中修复。您可以跟踪相关的问题/ pr here

10-06 15:01