【Kotlin/Android】RxJavaのdoAfterTerminateやdoOnErrorなどの使い方!

この記事からわかること

  • Android Studio/KotlinRxJava使い方
  • doAfterTerminateメソッドの使い方
  • doOnNext/doOnComplete/doOnError/doOnDispose/doOnEachdoOnLifecycleの違い実装方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Do系のメソッド

公式リファレンス:Do

RxJavaでは特定のイベントが発生したときにコールバックを実行するDo系のメソッドが数多く用意されています。購読した際や完了したとき、エラーが発生したときなどObservableのさまざまなライフサイクルの中で任意の処理を実行することができるようになります。

Do系の種類

Do系のメソッドは以下の種類が用意されているようです。

実際に使用する場合は以下のようになります。

val observable = Observable.just(1, 2, 3)

  observable
      .doOnNext { item -> println("Next: $item") }                // 新しい値が通知されるときに実行
      .doAfterTerminate { println("After terminate") }            // 正常に完了した後に実行
      .doOnSubscribe { disposable -> println("Subscribed") }      // 購読が開始されたときに実行
      .doOnComplete { println("Completed") }                      // 完了したときに実行
      .doOnError { error -> println("Error: ${error.message}") }  // エラーが発生したときに実行
      .doOnDispose { println("Disposed") }                         // 購読が解除されたときに実行
      .doOnEach { notification -> println("Each: $notification") } // 各通知の後に実行
      .doOnLifecycle(
          { disposable -> println("Lifecycle: Subscribed") },      // 購読が開始されたときに実行
          { println("Lifecycle: Unsubscribed") }                   // 購読が終了したときに実行
      )
      .subscribe()

ログ出力はこんな感じ。

Subscribed
Lifecycle: Subscribed
Next: 1
Each: OnNextNotification[1]
Next: 2
Each: OnNextNotification[2]
Next: 3
Each: OnNextNotification[3]
Completed
Each: OnCompleteNotification
After terminate

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index