RxJava生命周期可观察

时间:2017-07-11 05:01:23

标签: java android rx-java observable

Interactor一直存在应用程序。 还有一些方法:

 //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;

我的menthod打电话

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

我从 ViewModel 调用 getGiftPayPalObservable 方法。一切都很正常。但后来我摧毁片段。之后我运行代码 [2] 进行注销,我将在我的代码 [1] 中放置,但此时我的ViewModel尚未存在。这就是我得到崩溃应用程序的原因。

我怎么能不到位 [1] 我可以订阅吗?

我无法避免使用 session.getTokenObservable()

1 个答案:

答案 0 :(得分:0)

我解决了这样的问题:

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

使用帮助过滤器,我只是在令牌为空时不进入 [1]