Observableを購読すると、Androidのライフサイクルを使用して購読を解除する必要があることがわかります。 したがって、フラグメントまたはアクティビティのサブスクリプションの場合、私はonDestroy()でサブスクライブを解除します。AndroidのRxJava:ライフサイクルを持たない場合のサブスクリプションからの自動退会
しかし私の問題は、私がライフサイクルを持たない場所でサブスクリプションを行うときです。たとえば、SyncAdapterの場合。この場合(またはケース)、どのようにしてメモリリークを回避するために「自動退会」することができますか? SyncAdapterでこのサブスクリプションで壊れている「XXXの場所には絶対購読しない」というような良い習慣はありますか?
私はこのような何かに考えていた:
compositeDisposable.add(
Observable.just()...
...
.doOnTerminate(compositeDisposable::dispose)
.subscribe(...)
);
ありがとうございます!もう1つの質問:.unsubscribeOn本当にストリームから退会するか、退会するのはどこのスレッド(どのスレッド)かだけですか? – fitu
デフォルトでは、onError()またはonComplete()が呼び出された場合、ストリームの登録が解除されます。 unSubscribeOn()は、サブスクライブを解除するスレッドを特定する場合に便利です –