RxJava 1 には CompositeSubscription がありましたが、RxJava2 にはそれがなく、rxJava2 には CompositeDisposable というものがあります。RxJava2 で CompositeDisposable または Disposable を使用するにはどうすればよいですか?
質問する
61055 次
3 に答える
4
CompositeDisposable
廃棄後の再利用はできません。使い捨てのライフサイクルと Android のアクティビティのライフサイクルを同期させたい場合は、簡単なラッパーを作ることで対応可能です。
class AndroidDisposable {
private var compositeDisposable: CompositeDisposable? = null
fun add(disposable: Disposable) {
if (compositeDisposable == null) {
compositeDisposable = CompositeDisposable()
}
compositeDisposable?.add(disposable)
}
fun dispose() {
compositeDisposable?.dispose()
compositeDisposable = null
}
}
使い方:
class MainActivity : AppCompatActivity() {
private disposable = AndroidDisposable()
override fun onStart() {
super.onStart()
disposable.add(/* Some disposable */)
}
override fun onStop() {
disposable.dispose()
super.onStop()
}
}
于 2020-03-25T20:20:28.273 に答える