我正在尝试创建一个完整的并在后台线程上运行它,但是当我订阅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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)