Ich habe Android Zimmer der SQL-Abfrage, die Rückkehr fließfähig:Kette fließfähig komplettierbar mit Wirkung
@Query("SELECT * FROM exercices WHERE lang = 'ru' AND id_exercice = :id")
Flowable<Exercices> getExercicesById(int id);
In meinem Repository, ich brauche emittiert Element zu erhalten, als sein boolean Wert ändern, dann neue Methode aufrufen, das muss kehrt vollständig zurück. Das ist, was ich versuche:
@Override
public Completable setExerciseUsed(int id) {
return mDatabase.exerciseDao().getExercicesById(id)
.doOnNext(exercise -> exercise.setIs_used(1))
.flatMapCompletable(exercise ->
Completable.fromAction(() -> mFitnessDatabase.exerciseDao().addExercise(exercise)));
}
Auch habe ich versucht:
Exercices e = mDatabase.exerciseDao().getExercicesById(id).blockingFirst();
e.setIs_used(0);
return Completable.fromAction(() -> mDatabase.exerciseDao().addExercise(e));
Aber t funktioniert nicht richtig. Es scheint, als würde es fließend viele Elemente aussenden, und es wird nach dem Abonnement im Zyklus hängen bleiben.