2016-05-28 37 views
0

我讀了一些頁面,它定義了Rxjava是一個用於使用Java VM的可觀察序列編寫異步和基於事件的程序的庫。它基於觀察者模式。有關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. 我發現上面的代碼的文章說,它會立即運行 ,我可以立即通知觀察員。在這個例子中, 我想發送任何字符串我輸入,而不是這三個字符串。

回答

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

謝謝,我會讀它的點點滴滴 –