![](/img/trans.png)
[英]How can I generalize the arity of rxjava2 Zip function (from Single/Observable) to n Nullable arguments without lose its types?
[英]How can I stop observing an observable without disposing it in RxJava2?
我对 RxJava2 有一个不寻常的问题。
基本上我们有以下场景:
现在通常我会将所有代码放入 CompositeDisposable 并根据我的情况调用 clear() 或 dispose () 。 这将在用户按下返回按钮后停止观察上传的照片。
但是,在这种情况下我不能调用 clear() 或 dispose(),因为它会终止网络请求。 照片通常为 1-2 mb,通过调用 dispose 它将终止网络请求..,我怎样才能停止观察以前的流量而只观察未来的上传? 不终止以前的上传?
我知道应该有某种方式来通知我的 observable 用户按下了后退按钮,但我所有的尝试似乎都是 hacky 和不干净的。 我想学习处理这种情况的正确方法。
我认为正确的方法是使用takeUntil
,这样你就可以取消当前的上传并在那时完成。 然后您需要使用repeat
再次重新订阅以供将来上传。
像这样的东西:
compositeDisposable += nextButtonClicked
.firstOrError()
.flatMapCompletable {
networkUpload.takeUntil(backButtonClicked).ignoreElements()
}.repeat().subscribe()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.