Ich habe verschiedene Operatoren zum Iterieren von Objekten mit map
, concatMap
, all
ausprobiert, aber ich kann das Element nicht aus meiner Liste entfernen.RxJava: Element aus der Liste entfernen
ist hier ein Stück Code:
Observable.fromIterable(selectedJobs)
.observeOn(AndroidSchedulers.mainThread()) // Added this from one answer in SO. but still no resolution.
.all(homeJob -> {
if (!homeJob.isCanCloseJob()) {
selectedJobs.remove(homeJob); // <- this is what causing Exception
//toast message
} else {
//do something
}
return true;
})
.subscribe(new SingleObserver<Boolean>() {
@Override
public void onSubscribe(Disposable disposable) {
}
@Override
public void onSuccess(Boolean aBoolean) {
baseRealm.executeTransaction(realm -> realm.copyToRealmOrUpdate(selectedJobs));
}
@Override
public void onError(Throwable throwable) {
AppLogger.e(tag, throwable.getMessage());
// throws Caused by: java.util.ConcurrentModificationException
}
});
Alles, was ich will, ist für Zustand zu überprüfen, dann Objekt aus der Liste entfernen.
Ich habe versucht, mit 'filter' Operator, aber ich wollte alle gefilterten Objekte und das ist, was Sie tun mit' ToList() 'Funktion, die zurückkehren gefilterte Liste in 'onSuccess'. Vielen Dank. Ich akzeptiere diese Antwort – Aks4125