uber/AutoDisposeを用いてRxJavaのDisposableの管理を行いたいと考えています。
AppCompatActivityの中でスコーププロバイダを作りたいのですが、うまくできません。
private val scopeProvider by lazy { AndroidLifecycleScopeProvider.from(this) }
スコーププロバイダの作り方をご教示いただけないでしょうか。
dependencies
1 implementation 'io.reactivex.rxjava2:rxjava:2.2.5' 2 implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' 3 implementation 'com.jakewharton.timber:timber:4.7.1' 4 5 // AutoDispose 6 implementation 'com.uber.autodispose:autodispose:1.1.0' 7 implementation 'com.uber.autodispose:autodispose-lifecycle:1.1.0' 8 implementation 'com.uber.autodispose:autodispose-lifecycle-jdk8:1.1.0' 9 implementation 'com.uber.autodispose:autodispose-lifecycle-ktx:1.1.0' 10 implementation 'com.uber.autodispose:autodispose-android:1.1.0' 11 implementation 'com.uber.autodispose:autodispose-android-ktx:1.1.0' 12 implementation 'com.uber.autodispose:autodispose-android-archcomponents-ktx:1.1.0' 13}
class MainActivity : AppCompatActivity() { private val scopeProvider by lazy { AndroidLifecycleScopeProvider.from(lifecycle) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) Observable.interval(1, TimeUnit.SECONDS) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .doOnSubscribe { /* do something here */ } .doOnComplete { /* do something here */ } .doOnDispose { /* do something here */ } .autoDisposable(scopeProvider) .subscribe({ // do something here }, { throwable -> Timber.e(throwable) }) } }
以上、よろしくお願い致します。
うまくできないとはどういうことでしょう?何らかのエラーが発生するのであれば、それを追記してください。
あなたの回答
tips
プレビュー