gpt4 book ai didi

android - 在后台线程上运行独立的 Completable

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:08 26 4
gpt4 key购买 nike

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

基本上我想通过 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 - 在后台线程上运行独立的 Completable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47387627/

26 4 0