title: RxJava lifetime Observable
body: <p>Interactor lives all time existence app. 
  And some method from there:</p>
  
  <pre><code> //Interactor
  public Observable&lt;Pair&lt;Boolean, String&gt;&gt; getGiftPayPalObservable(Params params)
  {
      return session.getTokenObservable().flatMap(token -&gt;
      {
          [1]
          if (params.getType() == GiftCard)
          {
              return apiStorage.getGiftResult(token, params.getEmail());
          }
          else
          {
              return apiStorage.getPayPalResult(token, params.getEmail());
          }
      })
              .doOnError(Observable::error)
              .subscribeOn(getThreadExecutor().getBackgroundThread());
  }
  
  private final Session session;
  </code></pre>
  
  <p>And my menthod to call </p>
  
  <pre><code>tokenObservable.onNext(Prefs.getString(TOKEN_KEY, NO_TOKE)); [2]
  </code></pre>
  
  <p>I call method <strong>getGiftPayPalObservable</strong> from <strong>ViewModel</strong>. And all is normal. But then i destroy fragment. And after that i run code <strong>[2]</strong> to logout and i'm getting to place in my code <strong>[1]</strong> but my ViewModel has not already exist at this moment. That's why i get crash app. </p>
  
  <p>How can i don't get to place <strong>[1]</strong> can i usubscribe?</p>
  
  <p>I can't avoid to use <strong>session.getTokenObservable()</strong></p>