2016-08-15 4 views
1

RxJavaの新機能ですが、私はそれを学びたいと思っています。しかし、この場合、単純なコールバックモデルを使用して変更できないコードがあります。しかし、コールバックは直接呼び出されず、パラメータ化できませんが、Observablesを使用したいと考えています。基本的な例は、observableを返し、バックグラウンド操作を開始するmyFunc()を呼び出します。そのバックグラウンド操作は、myCallbackで返されます。私が望むのは、その結果で何かをすることができる結果とonNextを呼び出すことです。私は何を使うべきか分かりません、これは主題と関係していますか?RxJava:Observableを変更せずにObservableにする

private void doStuff() { 
    myFunc().subscribe(new Action1<Object>() { 
     @Override 
     public void call(Object o) { 
      System.out.println("DO SOMETHING WITH THE RESULT"); 
     } 
    }); 
} 

private void myCallback(Object result) { 
    [SOMETHING].onNext(result); 
} 

private Observable<Object> myFunc() { 
    //Do stuff which will return in myCallback 
    return [SOMETHING] 
} 

答えて

3

PublishSubjectを見てみましょう。

PublishSubject<T> subject = PublishSubject.create(); 
subject 
    // run in background 
    .subscribeOn(Schedulers.computation()) 
    .doOnNext(item -> doSomething(item)) 
    //make sure you log errors somewhere! 
    .subscribe(subscriber); 

サブスクリプションが確立された後:

subject.onNext(item1); 
subject.onNext(item2); 
subject.onCompleted(); 
+0

おかげで、私はその間にそれを見つけましたが、ええ、私は同じことをやった:) – breakline

関連する問題