我是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)。我的问题是...
个人?都不是。
您应该学习如何使用ViewModel
,并将CompositeDisposable
保留在此处,并以onCleared()
方法清除它。