title: Is it recommended to call Disposable.dispose() as soon as a subscription completes work?
body: <p>I have an <code>Activity</code> in which I am creating and subscribing to multiple instances of the <code>Single</code> class (each instance is doing some work in a separate background thread). For each subscription, I'm adding the <code>Disposable</code> instance that's created to a <code>CompositeDisposable</code> instance which is scoped to the <code>Activity</code>. When the <code>Activity</code> is destroyed, I am calling the <code>CompositeDisposable.clear()</code> method to dispose of all subscriptions in the <code>Activity</code>. This, of course, means that all <code>Disposable</code> instances (including those for subscriptions which have completed work) hang around in my <code>Activity</code> until the <code>Activity</code> is destroyed.</p>
  <p>Is this okay or should I call <code>Disposable.dispose()</code> for each individual subscription every time the particular <code>Single</code> instance completes work (i.e. when the <code>SingleObserver</code> receives the <code>onSuccess</code> or <code>onError</code> callback)? The problem with the latter approach is that I have to keep track of which <code>Disposable</code> links to which <code>SingleObserver</code>, and this defeats the point of using <code>CompositeDisposable</code>.</p>