Single.just(10) .doOnDispose(() -> Log.i("TEST", "dispose")) compose(bindUntilEvent(ActivityEvent.CREATE)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( i -> Log.i("TEST", String.valueOf(i)), throwable -> Log.i("TEST", throwable.toString()));
Single と Completable のときは、 onErrorにCancellationExceptionがくる。
Observable.interval(1, TimeUnit.SECONDS) .doOnDispose(() -> Log.i("TEST", "dispose")) .compose(bindUntilEvent(ActivityEvent.CREATE)) .observeOn(AndroidSchedulers.mainThread()) .doOnComplete(() -> Log.i("TEST", "onComplete")) .subscribe( i -> Log.i("TEST", String.valueOf(i)), throwable -> Log.i("TEST", throwable.toString()), () -> Log.i("TEST", "onComplete"));
ObservableとFlowableとMaybeは、onComplete()が実行されるとのこと。
Unsubscription RxLifecycle does not actually unsubscribe the sequence. Instead it terminates the sequence. The way in which it does so varies based on the type: Observable, Flowable and Maybe - emits onCompleted() Single and Completable - emits onError(CancellationException) If a sequence requires the Subscription.unsubscribe() behavior, then it is suggested that you manually handle the Subscription yourself and call unsubscribe() when appropriate.
実際の処理はPresenterがやるので、bindUntilEvent(ActivityEvent.CREATE)
をPresenterに渡す必要があるけど、どうPresenterに渡すのか?? あたりがこれだ!というのが自分の中にない。