2016-05-28 3 views
0

私はいくつかのページを読んで、RxjavaはJava VMに観測可能なシーケンスを使って非同期およびイベントベースのプログラムを作成するためのライブラリを定義しています。 Observerパターンに基づいています。Rxjavaに関するいくつかの考え方:オブザーバーのパターンとイベント

Observable observable = Observable.create(new Observable.OnSubscribe<String>() { 
@Override 
public void call(Subscriber<? super String> subscriber) { 
    subscriber.onNext("Hello"); 
    subscriber.onNext("Hi"); 
    subscriber.onNext("Aloha"); 
    subscriber.onCompleted(); 
} 

});

私の意見では、ボタンとボタンのリスナーのようなオブザーバーのパターンです。ボタンをクリックすると、ボタンはリスナーに実行を通知するイベントを作成します。

質問です:

  1. は、ボタンとリスナー権利に関する概念の私のundestandingのですか?
  2. 上記のコードでは、すぐに実行されることがわかります 、私はすぐには観測者に通知することはできません。この例では、 この3つの文字列の代わりに任意の文字列iを送信したいとします。

答えて

2

PublishSubjectをご覧ください。それはあなたが購読することができる観測可能なソースであり、イベントも送信することができます。 UIボタンの面では、あなたがこれを行うことができます:ボタンのリスナーで

final PublishSubject<String> subject = PublishSubject.create(); 

final Observable<String> o = 
    subject.doOnNext(...) 
      .doOnError(...) 
      .subscribe(); 

public void onEvent(Event event) { 
    subject.onNext(event.name()); 
} 
+0

おかげで、私はそれを少しずつ読んでます –

関連する問題