title: Why is my timer Observable never called?
body: <p>On Android, I have written an <code>Observable</code> which should be called once after 2000 msec, but which is never called.</p>
  
  <pre><code>    Observable.timer(2000, TimeUnit.MILLISECONDS) // wait 2000 msec
              .subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread())
              .flatMap(new Func1&lt;Long, Observable&lt;?&gt;&gt;() {
  
          @Override public Observable&lt;?&gt; call(Long aLong) {
              continuePlayback(); // this line is never called
              return null;
          }
  
      });
  </code></pre>
  
  <p>I want the <code>Observable</code> to wait off the main thread, then call <code>continuePlayback()</code> on the main thread. Context help allowed me to place <code>subscribeOn/observeOn</code> between the <code>timer</code> and <code>flatMap</code>. Is this correct? What is really happening here and what did I do wrong?</p>
  
  <p>What happens to the <code>Observable</code> after the call? Will it stay alive or will I need to explicitly tear it down somehow, e.g. call <code>OnCompleted()</code>?</p>