WorkManager でのスレッド化

WorkManager の概要で、WorkManager がバックグラウンド処理を非同期で実行することを説明しました。基本的な実装でほとんどのアプリのニーズに対応できますが、より高度なユースケース(停止中の処理を適切に操作するなど)に対応するには、WorkManager でのスレッド化と同時実行について学習する必要があります。

WorkManager が提供する処理の基本要素には次の 4 種類があります。

  • Worker - 最もシンプルな実装で、以前のセクションで見てきたものです。WorkManager は(優先可能な)バックグラウンド スレッドで自動的に Worker を実行します。Worker インスタンスでのスレッド化について詳しくは、Worker でのスレッド化をご覧ください。
  • CoroutineWorker - Kotlin ユーザーにおすすめの実装です。CoroutineWorker インスタンスはバックグラウンド処理用の suspend 関数を公開しているほか、デフォルトで、カスタマイズ可能なデフォルトの Dispatcher を実行します。CoroutineWorker インスタンスでのスレッド化について詳しくは、CoroutineWorker でのスレッド化をご覧ください。
  • RxWorker - RxJava ユーザーにおすすめの実装です。既存の非同期コードの多くを RxJava でモデル化する場合は、RxWorker を使用する必要があります。RxJava のすべてのコンセプトと同様に、スレッド戦略は自由に選択できます。RxWorker インスタンスでのスレッド化について詳しくは、RxWorker でのスレッド化をご覧ください。
  • ListenableWorker - WorkerCoroutineWorkerRxWorker の基本クラスです。Java でコールバック ベースの非同期 API(FusedLocationProviderClient など)を使用する必要があり、RxJava を使用しない場合を対象としています。ListenableWorker インスタンスでのスレッド化について詳しくは、ListenableWorker でのスレッド化をご覧ください。