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 でのスレッド化をご覧ください。