nhaarman
12/19/2016, 8:11 AMObserver passed to subscribe(Observer) is responsible for handling its own disposable management.
If you want to be able to get rid of the subscription, you need to do so using the Disposable passed to onSubscribe.
I think you can see this as the baseline. All the other overload methods are just there for convenience. They actually delegate to subscribe(Observer) with a special Observer implementation that acts as the Disposable.
Since you don't have access to the Disposable in these overloads, RxJava provides you with this resulting disposable you can use instead.