В RxJava для Android я хочу испускать элементы в интервале, который зависит от самого элемента: в Observable я вытягиваю элемент из очереди, обрабатываю это и испустить. В зависимости от типа элемента, я хочу настроить после того, как выйдет следующий элемент (замедлить или ускорить интервал).Испускать элементы в RxJava в интервале, который зависит от самого испущенного элемента
Следующий код, предложенный @ a.bertucci здесь Emit objects for drawing in the UI in a regular interval using RxJava on Android демонстрирует, как испускать элементы в регулярном интервале.
private void drawPath(final String chars) {
Observable.zip(
Observable.create(new Observable.OnSubscribe<Path>() {
// all the drawing stuff here
...
}),
Observable.timer(0, 50, TimeUnit.MILLISECONDS),
new Func2<Path, Long, Path>() {
@Override
public Path call(Path path, Long aLong) {
return path;
}
}
)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
...
}
Мой вопрос теперь, если это вообще возможно, чтобы изменить частоту излучения, а наблюдаемая излучающий, а что предпочтительная реализация с использованием RxJava.
Разве это не перекладывать всю последовательность, определенная задержка? Это не то, что мне нужно. Я не хочу менять последовательность. Я хочу, чтобы первый элемент был немедленно удален. Затем (или раньше), испускающий этот элемент, я хочу посмотреть на элемент, который я испускаю, и решить, когда будут выбрасываться следующие элементы (в зависимости от элемента). Затем выдается следующий элемент, и время снова изменяется для элемента после. –