モケラ

Tech Sheets

mokelab

Observableを作る

最終更新日:2017-05-04

まずはデータを出す箱となるObservableを作りましょう。代表的な作り方は次の3種類です。

  • リストから作る
  • データ1つから作る
  • createメソッドで作る

リストから作る

データを複数個出力するObservableを簡単に作る方法です。

private Observable<String> getUserIdList() {
    return Observable.fromArray("user-1", "user-2", "user-3");
}

List<T>から作る場合は、fromIterable()を使います。

private Observable<String> getUserIdList() {
    List<String> l = new ArrayList<>();
    l.add("user-1");
    l.add("user-2");
    l.add("user-3");
    return Observable.fromIterable(l);
}

データ1つから作る

fromArray()にデータを1つ入れることでもできますが、データが1つだけの場合はjust()というメソッドが使えます。

private Observable<String> getUserId() {
    return Observable.just("user-1");
}

createメソッドで作る

既存のライブラリがコールバック形式の場合はcreate()を使ってObservableにすることができます。

private DummyClient client;

private Observable<String> getUserId() {
    return Observable.create(new ObservableOnSubscribe<String>() {
        @Override
        public void subscribe(final ObservableEmitter<String> e) throws Exception {
            // 非同期処理の終了はeを通じて通知する
            client.sendRequest(new DummyClient.Callback() {
                @Override
                public void onSuccess(String userId) {
                    e.onNext(userId);
                    e.onComplete();
                }
            });
        }
    });
}

一覧に戻る