として消費者に渡す方法:rxjava2 - 私はアンドロイドで、次のrxjavaの依存関係を使用していたパラメータ
compile 'io.reactivex.rxjava2:rxjava:2.1.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
と私はPARAMTERとしてオブザーバーになります方法を作成しようとしています。私はいくつかの問題を抱えています。これはrxjava2なので、物事は更新され、少し混乱していると思います。
私が達成したいものをお見せしましょう:
private Subscription subscription = Scriptions.empty(); //this isn't working. how to set a empty observer IN RXJAVA2?
protected abstract Observable buildUseCaseObservable(); //RETROFIT WILL BUILD THE OBSERVABLE FOR ME SOMEWHERE ELSE
public void execute(Consumer UseCaseSubscriber){
this.subscription = this.buildUseCaseObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(UseCaseSubscriber); //THIS LINE IS NOT WORKING , ERROR IS IN THE PHOTO
}
public void unsubscribe(){
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();
}
}
基本的に私は(パラメータとして観測者/消費者を受け入れ、改造が行われた後、UIを更新するためにそれを使用するメソッドを作成しようとしています観察可能である)。
更新: ok私はdisposablesに変更しました。今私は私が戻ってきた使い捨て物を保管したいが、それは働かない。
私は、サブスクリプションで全体を保存する(または他のあなたがお勧めします何でも)理由はので、私はそれたびに解除することができますされています
protected abstract Observable buildUseCaseObservable();
@SuppressWarnings("unchecked")
public void execute(Observer UseCaseSubscriber){
this.subscription = this.buildUseCaseObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(UseCaseSubscriber);
}
public void unsubscribe(){
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();
}
}
私は次の警告を取得していますが欲しいです。
しかしdocsから
:反応ストリームベースのインタフェースは、org.reactivestreams.Publisherがボイドとして加入()メソッドを定義するので、Flowable.subscribe(加入者)は、もはや任意のサブスクリプションを返し(または使い捨て)。他の基本反応タイプも、それぞれの加入者タイプとともにこの署名に従う。
どのように私たちはその後退会することができるように使い捨てを保存するには?
私はあなたの上のセクションで回答が与えられているので、wikiページ全体を読むことをお勧めします:https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#subscriber – akarnokd
優れています。あなたの右 – j2emanue