Ваш подход задержит следующую (под) запись, если Observable.timer().repeat()
будет излучать после booleanObservable
. К сожалению, это сработало бы только для второй (под) записи, так как после этого .repeat()
начал бы излучать очень быстро, так как он не переписывался на последующий поток Observable
. From .repeat()
Javado c:
Возвращает Observable, который бесконечно повторяет последовательность элементов, излучаемых источником ObservableSource.
Если вы используете Observable.timer(delayInMillis, MILLISECONDS).repeatWhen(completions -> completions)
или Observable.interval(delayInMillis, MILLISECONDS)
, тогда эти записи будут происходить не чаще, чем delayInMillis, MILLISECONDS
.
Если вы хотите дать периферийному устройству delayInMillis, MILLISECONDS
время до выдачи следующей записи, то, похоже, существует более простой подход:
rxBleConnection.createNewLongWriteBuilder()
.setCharacteristicUuid(characteristic)
.setBytes(data)
.setWriteOperationAckStrategy(booleanObservable -> booleanObservable.delay(delayInMillis, MILLISECONDS))
.build()