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
- Worker
、CoroutineWorker
、RxWorker
の基本クラスです。Java でコールバック ベースの非同期 API(FusedLocationProviderClient
など)を使用する必要があり、RxJava を使用しない場合を対象としています。ListenableWorker
インスタンスでのスレッド化について詳しくは、ListenableWorker でのスレッド化をご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-01-03 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-01-03 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-01-03 UTC。"]]