web-dev-qa-db-ja.com

バックグラウンドでvoidメソッドを実行する

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戻り値の型を維持する方法はありますか?

17
Marcin Kunert

fromAction() メソッドはあなたが探しているものです。

Completable.fromAction(this::myHeavyMethod)
38
tynn