¿Cómo ejecutar 2 consultas secuencialmente en un Android RxJava Observable?

Quiero ejecutar 2 tareas asincrónicas, una seguida de la otra (secuencialmente). He leído algo sobre ZIP o Flat, pero no lo entendí muy bien ...

Mi propósito es cargar los datos de un SQLite local, y cuando finaliza, llama la consulta al servidor (remoto).

¿Alguien puede sugerirme una forma de lograr eso?

Este es el esqueleto observable de RxJava que estoy usando (tarea única):

    // RxJava Observable
    Observable.OnSubscribe<Object> onSubscribe = subscriber -> {
        try {

            // Do the query or long task...

            subscriber.onNext(object);
            subscriber.onCompleted();
        } catch (Exception e) {
            subscriber.onError(e);
        }
    };

    // RxJava Observer
    Subscriber<Object> subscriber = new Subscriber<Object>() {
        @Override
        public void onCompleted() {
            // Handle the completion
        }

        @Override
        public void onError(Throwable e) {
            // Handle the error
        }

        @Override
        public void onNext(Object result) {

          // Handle the result

        }
    };

    Observable.create(onSubscribe)
            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(subscriber);

Respuestas a la pregunta(3)

Su respuesta a la pregunta