title: Subscribewith Vs subscribe in RxJava2(Android)?
body: <p>When to call the subscribeWith method rather than plain subscribe? And what is the use case?</p>
  
  <pre><code>compositeDisposable.add(get()
      .observeOn(AndroidSchedulers.mainThread())
      .subscribeOn(Schedulers.io())
      .subscribe(this::handleResponse, this::handleError));
  </code></pre>
  
  <p>VS</p>
  
  <pre><code>   compositeDisposable.add(get()
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribeOn(Schedulers.io())
                //  .subscribe(this::handleResponse, this::handleError);
                  .subscribeWith(new DisposableObserver&lt;News&gt;() {
                      @Override public void onNext(News value) {
                          handleResponse(value);
                      }
  
                      @Override public void onError(Throwable e) {
                          handleError(e);
                      }
  
                      @Override public void onComplete() {
                         // dispose here ? why? when the whole thing will get disposed later
                         //via  compositeDisposable.dispose();  in onDestroy();
                      }
                  }));
  </code></pre>
  
  <p>Thank you  </p>
  
  <hr>
  
  <h2><strong>Added Later</strong></h2>
  
  <p>According to the documentation, both return disposable SingleObserver instances:</p>
  
  <pre><code>@CheckReturnValue
  @SchedulerSupport(SchedulerSupport.NONE)
  public final &lt;E extends SingleObserver&lt;? super T&gt;&gt; E subscribeWith(E observer) {
      subscribe(observer);
      return observer;
  }
  
  @SchedulerSupport(SchedulerSupport.NONE)
  public final Disposable subscribe(final Consumer&lt;? super T&gt; onSuccess, final Consumer&lt;? super Throwable&gt; onError) {
      ObjectHelper.requireNonNull(onSuccess, "onSuccess is null");
      ObjectHelper.requireNonNull(onError, "onError is null");
      ConsumerSingleObserver&lt;T&gt; s = new ConsumerSingleObserver&lt;T&gt;(onSuccess, onError);
      subscribe(s);
      return s;
  }
  </code></pre>
  
  <p>Where ConsumerSingleObserver class implements SingleObserver and Disposable.</p>