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()
答案 0 :(得分:0)
我解决了这样的问题:
return session.getTokenObservable()
.filter(token -> !token.equals(session.getNoToke()))
.flatMap(token ->
使用帮助过滤器,我只是在令牌为空时不进入 [1] 。