Я пытаюсь понять rxJava
, и я ищу эксперта или кого-то с опытом, чтобы попытаться решить мой вопрос, дело в том, что я использую RxJava в течение года, но только для Retrofit
звонки, я использовал Disposable
и делал что-то вроде:
disposable = myService.myInterface.getData()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::handleResponse, this::handleError))
Хорошо, но когда я ищу в Google, я вижу людей, использующих CompositeDisposable
, и они вместо disposable = ...
делают compositeDisposable.add(....)
Я хотел бы знать, когда использовать каждый из них, я также говорю Single
предназначен для возврата либо значения, либо ошибки, но в чем же разница между Observable
? Если Single
может вернуть также List<Object>
.
И в другом примере я использую это:
private var subscription: Disposable? = null
subscription = model.result()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object : DisposableObserver<ListViewModel>() {
override fun onNext(viewModel: ListViewModel) {
if (mView != null) {
mView!!.updateData(viewModel)
}
}
override fun onError(e: Throwable) {
e.printStackTrace()
if (mView != null) {
mView!!.showError()
}
}
override fun onComplete() {
if (mView != null) {
mView!!.hideProgressBar()
}
}
})
Я заметил, что если я использую add.(..)
вещь в onStop()
, я должен очистить compositeDisposable
А также я использую disposable
без onNext
, onError
и onComplete
Не могли бы вы, ребята, дать мне знать, когда будете использовать все это?