вот один из возможных подходов ...
- создать поток для каждой кнопки
- вам, вероятно, понадобится узнать, какая кнопка была нажата, поэтому
map
выводкаждый поток имеет какое-то известное значение, которое будет обработано в подписчике merge
двух потоков вместе и throttleFirst
этого объединенного потока
, который будет выглядеть примерно так:
RxView.clicks(button1).map { "button1" }
.mergeWith(RxView.clicks(button2).map { "button2" })
.throttleFirst(1, TimeUnit.SECONDS)
.subscribeBy(
onNext = { value ->
if(value == "button1") {
// handle button1 click
} else {
// handle button2 click
}
},
onError = {
...
}
)
возможно, не самый элегантный, но, надеюсь, это, по крайней мере, вдохновляет на некоторые мысли!