implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.9'
List<String> list = newArrayList<>();
for (inti = 0; i < 10; i++) {
list.add(String.valueOf(i));
}
Log.d(TAG, "onCreate: " + list.toString());
CountDownLatchcountDownLatch = newCountDownLatch(1);
Observable.interval(1000, TimeUnit.MILLISECONDS)
.subscribe(newObserver<Long>() {
@OverridepublicvoidonSubscribe(Disposabled) {
}
@OverridepublicvoidonNext(Longcount) {
if (count == list.size() - 1) {
onComplete();
} else {
list.set(count.intValue(), list.get(count.intValue()) + " Manipulasi dengan RX");
Log.d(TAG, "onCreate: index " + count.intValue() + " Maniputaled " + list.get(count.intValue()));
}
}
@OverridepublicvoidonError(Throwablee) {
}
@OverridepublicvoidonComplete() {
countDownLatch.countDown();
Log.d(TAG, "onCreate: " + list.toString());
}
});
try {
countDownLatch.await();
} catch (InterruptedExceptione) {
e.printStackTrace();
}List<MyModel> list = newArrayList<>();
for (inti = 0; i < 10; i++) {
list.add(newMyModel(i, String.valueOf(i)));
}
Log.d(TAG, "onCreate Before: " + list.toString());
Observable.fromIterable(list)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(newFunction<MyModel, MyModel>() {
@OverridepublicMyModelapply(MyModelitem) throwsException {
item.setData("Manipulated");
returnitem;
}
})
.subscribe(newObserver<MyModel>() {
@OverridepublicvoidonSubscribe(@NonNullDisposabled) {
}
@OverridepublicvoidonNext(@NonNullMyModelmyModel) {
myModel.setData("Manipulated");
}
@OverridepublicvoidonError(@NonNullThrowablee) {
}
@OverridepublicvoidonComplete() {
Log.d(TAG, "onCreate After: " + list.toString());
}
});
Copyright 2021 M. Fadli Zein