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-Worker、CoroutineWorker、RxWorkerの基本クラスです。Java でコールバック ベースの非同期 API(FusedLocationProviderClientなど)を使用する必要があり、RxJava を使用しない場合を対象としています。ListenableWorkerインスタンスでのスレッド化について詳しくは、ListenableWorker でのスレッド化をご覧ください。