WorkManagerを使う場面
適切なバックグラウンド処理ツールを選びます
「WorkManagerを使う場面」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全4レッスンが含まれています。
WorkManager を使用するタイミング
WorkManager は、Android で延期可能かつ確実に実行する必要があるバックグラウンド処理に推奨される API です。アプリが終了した後やデバイスが再起動した後でも、最終的に実行する必要があるタスクには WorkManager を使用します。
延期可能と確実な実行
WorkManager の役割を決める重要な言葉は 2 つあります。
- 延期可能:今すぐ実行する必要がなく、適切な条件が整うまで待てる
- 確実:アプリの終了や再起動後も処理が失われず、最終的に実行される
適したユースケース
WorkManager は、次のような処理に適しています。
- ログや分析データのアップロード
- サーバーとのデータ同期
- コンテンツの定期的なバックアップ
- 画像の圧縮や処理
これらは待機でき、失われてはいけない処理です。
使用してはいけない場合
WorkManager は次の処理には適していません。
- 即時実行が必要で現在の画面に関連するアプリ内処理:
viewModelScopeでコルーチンを使用します - 正確な時刻に実行するアラーム:
AlarmManagerを使用します - ユーザーが開始し、今すぐ完了する必要がある長時間処理:フォアグラウンドサービスを検討します
システムの健全性を保つ
WorkManager は、Doze モード、バッテリー、バックグラウンド制限に配慮して処理をまとめ、延期します。必要な条件を指定すると、システムが効率的な実行タイミングを選び、バッテリーを節約します。
制約が実行を決める
「従量制ではないネットワークでのみ」や「充電中のみ」といった制約を設定できます。WorkManager は、制約が満たされるまで待ってからタスクを実行します。
永続性を処理する
WorkManager は、処理キューを内部データベースに保存します。アプリが強制終了されたり端末が再起動したりしても、スケジュール済みの処理は復元され、引き続き実行されます。これを自分で実装する必要はありません。
1 回限りと定期実行
WorkManager は 2 種類の処理に対応しています。
- OneTimeWorkRequest:1 回だけ実行する
- PeriodicWorkRequest:一定間隔で繰り返す(最短 15 分)
組み込みの再試行
処理が一時的に失敗した場合、Result.retry() を返すと、WorkManager はバックオフポリシーに従って後で再試行します。再試行のロジックを自分で実装する必要はありません。
依存関係の追加
KTX のコルーチンサポートを含む WorkManager のランタイムアーティファクトを、モジュールの Gradle ファイルに追加します。
dependencies {
implementation("androidx.work:work-runtime-ktx:2.9.1")
}基本的な考え方
WorkManager は、バックグラウンドタスク用の信頼できる ToDo リストだと考えてください。条件付きでジョブを追加すると、途中でさまざまなことが起きても、システムが適切なタイミングで完了させてくれます。
理解度チェック
WorkManager を使用するタイミングについての理解度を確認しましょう。
まとめ
WorkManager の目的を学びました。
- 延期可能で確実なバックグラウンド処理を実行する
- 同期、アップロード、バックアップに適しているが、即時実行や正確な時刻の処理には適していない
- アプリの終了や再起動後も処理を保持し、バッテリーに配慮して再試行する
- 制約付きの 1 回限りの処理と定期処理に対応する
次は Worker の作成です。
よくある質問
「WorkManagerを使う場面」レッスンは無料ですか?
はい。「WorkManagerを使う場面」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全4レッスンが含まれています。
「WorkManagerを使う場面」で何を学びますか?
適切なバックグラウンド処理ツールを選びます ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Android Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「WorkManagerを使う場面」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAndroid Academyレッスンでコードを書いて実行できますか?
はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- WorkManagerを使う場面
- Workerを作成する
- 制約とスケジューリング
- 定期処理と連結処理