title: Retrofit 2 + RxJava cancel/unsubscribe
body: <p>I am performing a network request where I send files and a message.
  I would like to have an option to cancel current request. I have found two similar questions and both suggests that <code>observable.subscribe(Observer)</code> returns Subscription object which has method <code>unsubscribe()</code>.</p>
  
  <p><a href="https://stackoverflow.com/questions/30727268/how-cancel-task-with-retrofit-and-rxjava">Here is the first one</a></p>
  
  <p><a href="https://stackoverflow.com/questions/34199769/how-to-cancel-request-with-retofit2-and-rxandroid">And the second one</a></p>
  
  <p>In my case, I use <code>observable.subscribe(Observer)</code> which is void. Here is my code:</p>
  
  <pre><code>Observable&lt;MessengerRaw&gt; observable = mModel.sendMessage(message, companion, description, multiParts);
          observable.subscribe(new Observer&lt;MessengerRaw&gt;() {
              @Override
              public void onSubscribe(Disposable d) {
  
              }
  
              @Override
              public void onNext(MessengerRaw value) {
                  if (getView() != null) {
                      ((MessengerActivity) getView()).resetMessegeView();
                      ((MessengerActivity) getView()).updateMessageList();
                  }
              }
  
              @Override
              public void onError(Throwable e) {
                  getData().remove(0);
                  if (getView() != null) {
                      ((MessengerActivity) getView()).updateMessageList();
                  }
              }
  
              @Override
              public void onComplete() {
                  hideProgress();
              }
          });
  </code></pre>
  
  <p>So how do I unsubscribe/cancel my request?
  Thank you.</p>