android– 在后台线程上运行standalone Completable

android– 在后台线程上运行standalone Completable,第1张

概述我正在尝试创建一个完整的并在后台线程运行它,但是当我订阅Schedulers.io()时它不会调用Action的run()基本上我想通过RxAndroid做以下事情:Threadt=newThread(newRunnable(){publicvoidrun(){doSomething();}});t.star

我正在尝试创建一个完整的并在后台线程上运行它,但是当我订阅Schedulers.io()时它不会调用Action的run()

基本上我想通过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());

如果我执行Schedulers.io(),则不会调用run()方法,但如果我执行subscribe()则会调用它.

当我订阅Schedulers.io()时,我无法找到它运行的原因.

解决方法:

Stream只有在订阅后才会执行.这意味着,您的完成表应该按顺序运行run()方法进行订阅. subscribeOn()不订阅流,它只是告诉订阅哪个线程.

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

    Completable.fromAction(new Action() {        @OverrIDe        public voID run() throws Exception {            doSomething();        }    })    .subscribeOn(Schedulers.io())    .subscribe(...);
总结

以上是内存溢出为你收集整理的android – 在后台线程上运行standalone Completable全部内容,希望文章能够帮你解决android – 在后台线程上运行standalone Completable所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存