如何在RxJava2.0中处理可抛弃物>>

问题描述 投票:0回答:1

我是Rx世界的新手,我已经看到了多个如何处置Disposable的示例,但我不太了解其中的区别。我正在使用RxJava 2.0(v2.2.17)和RxAndroid(v2.1.1)。

我的问题是案例1和案例2有什么区别?您的应用程序更喜欢这两种情况中的哪一种?

案例1:

private val compositeDisposable: CompositeDisposable = CompositeDisposable()

adsApiService.getVideos()
        .subscribeOn(Schedulers.io())
        .observeOn( AndroidSchedulers.mainThread())
        .subscribe(
            { v -> Log.d("video", v.toString()) },
            { e -> Log.d("video", e.toString()); compositeDisposable.dispose() },
            { compositeDisposable.dispose() },
            { disposable -> compositeDisposable.add(disposable)}
        )
}

案例2]]

class MainActivity : AppCompatActivity() {

    private var compositeDisposable: CompositeDisposable? = CompositeDisposable()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        compositeDisposable?.add(api.getVideosAds())
    }

    override fun onDestroy(){
        super.onDestroy()
        compositeDisposable?.dispose()
    }

}

我是Rx世界的新手,我已经看到了多个如何处置Disposable的示例,但我不太了解其中的区别。我正在使用RxJava 2.0(v2.2.17)和RxAndroid(v2.1.1)。我的问题是...

kotlin rx-java2 rx-android
1个回答
1
投票

个人?都不是。

您应该学习如何使用ViewModel,并将CompositeDisposable保留在此处,并以onCleared()方法清除它。

© www.soinside.com 2019 - 2024. All rights reserved.