【发布时间】:2019-11-19 17:32:05
【问题描述】:
应该如何处理这样的问题:假设我需要创建周期性的网络请求,这应该只发生在应用程序在前台时,因为如果它们发生在后台网络请求可以终止,有后台服务。我知道您需要此代码来处理定期请求:
Observable.fromCallable(networkRequest())
.repeatWhen(observable -> observable.delay(5, TimeUnit.SECONDS));
问题是,当app在后台时,它会继续执行..
我考虑过以某种方式添加 LiveData,以便在 onStop 中取消订阅并在 onStart 中继续。但是,我找不到正确的方法。
如果我将所有这些都添加到 CompositeDisposable,它可能会终止我的网络请求,如果我在 onStop 中调用disposable.clear()。所以这也不是正确的解决方案。
我也想获得 ViewModel 的解决方案,但如果在其中做不到,那么活动也适合作为观察者。
【问题讨论】:
-
LiveData 已经是生命周期感知组件。这是最适合您的方法
-
是的,但是我应该如何结合来自 RxJava 的响应并在其之上添加 livedata?我需要的是:observeOnLifecycle
标签: android mvvm rx-java2 android-livedata