2017-11-14 8 views
0

すぐにobservableを返す必要がある場合がありますが、このobservableを別のものに置き換えます。ここで返されたobservableを新しいものと置き換える方法RxJava2

は例

private Flowable<byte[]> mFlowableStream = Flowable.empty(); 

    @Override 
    public Flowable<byte[]> startStreamRead() { 
     bindToService(); 
     return mFlowableStream; 
    } 

され、その後、サービスに結合した後、私は私が何をしたいのか、それをその

@Override 
public void bindToService() { 
    mAppContext.bindService(new Intent(mAppContext,StreamService.class), mServiceConnection, 0); 
} 

    @Override 
    public void onServiceConnected(ComponentName name, IBinder binder) { 

     mServiceInterection = ((StreamServiceInterection.LocalBinder) binder).getServiceInteractor(); 
     mStreamDisposable = mServiceInterection.getStream() 
       .subscribe(new Consumer<byte[]>() { 
        @Override 
        public void accept(byte[] data) throws Exception { 

        } 
       }); 
    } 

のようなコールバック接続を提供何とか戻っ以前mFlowableStreamとを交換することです私はサービスから得た新しい観察可能なものです。

これを実装する方法はありますか?多分、私はFutureのような他の値を返すべきでしょう。

この問題を解決する方法新しいデータだけで、流動性にプッシュ、来るときは、次にFlowable.create代わりのFlowable.empty

を使用することができます

おかげ

答えて

0

を提案してください。例

final ArrayList<FlowableEmitter<Integer>> arrEmitter = new ArrayList<>(); 

    Flowable<Integer> futureFlow = Flowable.create(new FlowableOnSubscribe<Integer>() { 
     @Override 
     public void subscribe(final FlowableEmitter<Integer> e) throws Exception { 
      e.onNext(1); 
      e.onNext(2); 

      arrEmitter.add(e); // hold emitter to use later 
     } 
    }, BackpressureStrategy.BUFFER); 

    futureFlow.subscribe(new ResourceSubscriber<Integer>() { 
     @Override 
     public void onNext(Integer integer) { 
      System.out.println("onNext: " + integer); 
     } 

     @Override 
     public void onError(Throwable t) { 

     } 

     @Override 
     public void onComplete() { 
      System.out.println("onComplete"); 
     } 
    }); 


    // =========== When data come 
    FlowableEmitter<Integer> holdEmitter = arrEmitter.get(0); 

    holdEmitter.onNext(3); 

それとも、使うことができ**件名*タイプと同様に あなたの必要性

Understanding RxJava Subject — Publish, Replay, Behavior and Async Subject

に従って
関連する問題