在后台运行void方法

时间:2017-04-18 11:34:43

标签: rx-java rx-java2

我想使用rxjava在后台运行一个方法。我不在乎结果。

void myHeavyMethod() { (...) }

到目前为止,我唯一的解决方案是将返回类型修改为例如boolean

boolean myHeavyMethod() { (...) return true; }

之后我跑了:

Completable.defer(() -> Completable.fromCallable(this::myHeavyMethod))
        .subscribeOn(Schedulers.computation())
        .subscribe(
                () -> {},
                throwable -> Log.e(TAG, throwable.getMessage(), throwable)
        );

有没有办法保持void返回类型?

1 个答案:

答案 0 :(得分:33)

fromAction()方法是您正在寻找的方法。

Completable.fromAction(this::myHeavyMethod)