在后台线程上运行独立的可压缩



>我正在尝试创建一个可完成的并在后台线程上运行它,但是当我订阅Schedulers.io()时,它没有调用Actionrun()

基本上我想通过RxAndroid执行以下操作:

     Thread t = new Thread(new Runnable() {
        public void run() {
            doSomething();
        }
    });
    t.start(); 

使用RxAndroid,我正在执行以下操作:

   Completable.fromAction(new Action() {
        @Override
        public void run() throws Exception {
            doSomething();
        }
    }).subscribeOn(Schedulers.io());

如果我这样做run()方法不会被调用Schedulers.io(),但是如果我这样做,它就会被调用subscribe()

当我订阅Schedulers.io()时,我找不到它为什么运行。

Stream 只有在订阅后才会执行。这意味着,您的可完成对象应该被订阅run()以便执行方法。 subscribeOn() 不订阅流,它只是告诉订阅哪个线程

在您的示例中,只需在末尾添加subscribe()即可启动要调用run()方法:


    Completable.fromAction(new Action() {
        @Override
        public void run() throws Exception {
            doSomething();
        }
    })
    .subscribeOn(Schedulers.io())
    .subscribe(...);

最新更新