• 1000
Проблема в том, что RxJava2 вызывает java. net .SocketException: Socket closed после того, как я вызываю CompositeDisposable.clear () . Однако я должен это сделать, потому что в противном случае сетевой запрос может быть инициирован, когда приложение находится в фоновом режиме, и это автоматически вызовет другие исключения, , потому что вы не можете создавать сетевые запросы, когда приложение находится в фоновом режиме .
Как мне вызвать CompositeDisposable.clear () без фактического распределения сетевого запроса?
Вот мой поток:
CompositeDisposable.add(observeWhenYouCanInitiateRequest().
subscribeOn(Schedulers.io())
.flatMap { _ ->
//this one is canceled if I would call CompositeDisposable.clear()
otherUseCase.execute()
}
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
},{
}))
}
А вот метод наблюденияWhenYouCanInitiateRequest:
fun observeThenToStartProcessing(): Observable<Boolean> {
return Observable.zip(firstTriggerSubject, secondTriggerSubject,
thirdTriggerSubject,
Function3<Boolean, Boolean, Boolean, Boolean> { firstTriggerSubject, secondTriggerSubject,
thirdTriggerSubject ->
//returning required condition
return firstTriggerSubject&&secondTriggerSubject&&thirdTriggerSubject
})
}