title: How to keep subscriber after onError(RxJava)
body: <p>1st, I tried</p>
  
  <pre><code>// used retrofit
  public interface ApiService {
      @GET(/get_some_data)
      Observable&lt;SomeData&gt; getSomeData();
  }
  
  
  
  // clickStream created by onClick event
  // No.1
  clickStream
      .flatMap(e -&gt; apiService.getSomeData())
      .subscribe(
          success -&gt; Log.d("tag", "success"),
          error -&gt; Log.d("tag", "error"),
          () -&gt; Log.d("tag", "complete"))
  </code></pre>
  
  <p>this is fine if <strong>getSomeData()</strong> is success.
  I can get some data each click.</p>
  
  <p>but if occur error, unsubscribed.
  (so click is not works after error) </p>
  
  <hr>
  
  <p>2nd, I tried below.(with onErrorResumeNext) but <strong>unsubscribed</strong>.</p>
  
  <p>(didn't call onError, but called onComplete. so unsubscribed) </p>
  
  <pre><code>// No.2
  clickStream
      .flatMap(e -&gt; apiService.getSomeData())
      .onErrorResumeNext(throwable -&gt; Observable.empty())  // add this line
      .subscribe(
          success -&gt; Log.d("tag", "success"),
          error -&gt; Log.d("tag", "error"),
          () -&gt; Log.d("tag", "complete"))
  </code></pre>
  
  <hr>
  
  <p>3rd, I tried below.(with retry)</p>
  
  <pre><code>// No.3
  clickStream
      .flatMap(e -&gt; apiService.getSomeData())
      .retry(5)                                            // add this line
      .subscribe(
          success -&gt; Log.d("tag", "success"),
          error -&gt; Log.d("tag", "error"),
          () -&gt; Log.d("tag", "complete"))
  </code></pre>
  
  <p>this is better than No.1. but unscribed.</p>
  
  <hr>
  
  <p>I want to make refresh button that works after error.</p>
  
  <p>I want to know</p>
  
  <ol>
  <li>Can I keep or re-subscribe subscriber?</li>
  <li>Is this a proper way in Rxjava?</li>
  </ol>
  
  <p>sorry for my poor English.</p>