¿Cómo se puede pausar un Observable sin perder los elementos emitidos?

Yo tengo unObservable que emite tics cada segundo:

Observable.interval(0, 1, TimeUnit.SECONDS)
    .take(durationInSeconds + 1));

Me gustaría pausar este Observable para que deje de emitir números y reanudarlo a pedido.

Hay algunas trampas:

de acuerdo con laObservable Javadoc,interval el operador no admite contrapresiónel wiki de RxJava sobrecontrapresión tiene una sección sobreBloqueo de pila de llamadas como alternativa de control de flujo a la contrapresión:

Otra forma de manejar un Observable sobreproductivo es bloquear la pila de llamadas (estacionar el hilo que gobierna el Observable sobreproductivo). Esto tiene la desventaja de ir en contra del modelo "reactivo" y sin bloqueo de Rx. Sin embargo, esta puede ser una opción viable si el Observable problemático está en un subproceso que se puede bloquear de forma segura.Actualmente RxJava no expone a ningún operador para facilitar esto.

¿Hay alguna manera de pausar uninterval ¿Observable? ¿O debería implementar mi propio Observable 'tic-tac' con algún soporte de contrapresión?

Respuestas a la pregunta(1)

Su respuesta a la pregunta