2017-07-11 25 views
0

インタラクタは常時存在するアプリです。 そして、そこからいくつかの方法:RxJavaライフタイムObservable

//Interactor 
public Observable<Pair<Boolean, String>> getGiftPayPalObservable(Params params) 
{ 
    return session.getTokenObservable().flatMap(token -> 
    { 
     [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; 

そして

tokenObservable.onNext(Prefs.getString(TOKEN_KEY, NO_TOKE)); [2] 

を呼び出すために私menthod私はViewModelにからgetGiftPayPalObservable方法を呼び出します。そして、すべて正常です。しかし、私は断片を破壊する。その後、コード[2]をログアウトしてコード[1]に配置しましたが、私のViewModelはまだ現時点では存在していません。だから私はクラッシュアプ​​リを取得する理由です。

どうすればいいですか?[1]私は申し込みできますか?私はちょうど[1]に得ることはありませんヘルプフィルタで

return session.getTokenObservable() 
      .filter(token -> !token.equals(session.getNoToke())) 
      .flatMap(token -> 

:私はsession.getTokenObservable()を使用することを避けることができない

答えて

0

は、私はこのような問題を解決しましたトークンが空の場合。

関連する問題