web-dev-qa-db-fra.com

Exécuter la méthode void en arrière-plan

Je veux exécuter une méthode en arrière-plan en utilisant rxjava. Je me fiche du résultat.

void myHeavyMethod() { (...) }

Jusqu'à présent, la seule solution que j'ai est de modifier le type de retour par exemple boolean.

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

Ensuite je cours:

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

Existe-t-il un moyen de le faire en conservant le type de retour void?

17
Marcin Kunert

La méthode fromAction() est ce que vous recherchez.

Completable.fromAction(this::myHeavyMethod)
38
tynn