我有以下代码(RxJava 1.3.8):
Scheduler scheduler = Schedulers.from(Executors.newSingleThreadExecutor());
Subscription subscription1 = Completable.fromCallable(() -> {
Thread.sleep(1000);
System.out.println("first Callable executed");
return 0;
})
.subscribeOn(scheduler)
.subscribe();
Subscription subscription2 = Completable.fromCallable(() -> {
Thread.sleep(1000);
System.out.println("second Callable executed");
return 0;
})
.subscribeOn(scheduler)
.subscribe();
CompositeSubscription subscriptions = new CompositeSubscription();
subscriptions.addAll(subscription1, subscription2);
subscriptions.clear();
输出:
第一个 Callable 执行
第二个 Callable 执行
问题是 - 为什么第二个 Callable 被执行?在它运行之前,如果取消订阅,我希望订阅检查并取消执行。
相关分类