Android 11 デベロッパー プレビュー 2 が公開されました。ぜひお試しのうえ、フィードバックをお寄せください

WorkManager でのスレッド化

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

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

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