Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

WorkManager でタスクのスケジュールを設定する   Android Jetpack の一部

WorkManager API を使用すると、アプリが終了、またはデバイスが再起動した場合でも実行することが要求される延期可能な非同期タスクのスケジュールを簡単に設定できます。

主な機能:

  • API 14 までの下位互換性
    • API 23 以上が搭載されたデバイスでは JobScheduler を使用
    • API 14~22 が搭載されたデバイスでは BroadcastReceiver と AlarmManager を組み合わせて使用
  • ネットワークの可用性や充電ステータスなどの処理の制約を追加する
  • 非同期の 1 回限りのタスクや定期的なタスクのスケジュールを設定する
  • スケジュール設定されたタスクの監視と管理を行う
  • タスクを連携させる
  • アプリやデバイスが再起動してもタスクを確実に実行する
  • Doze モードなどの省電力機能に準拠する

WorkManager は、アプリが終了したりデバイスが再起動したりしても確実に実行する必要がある遅延可能なタスク(つまり、直ちに実行する必要がないタスク)を対象としています。次に例を示します。

  • ログやアナリティクスをバックエンド サービスに送信する
  • アプリデータをサーバーと定期的に同期する

WorkManager は、アプリプロセスが終了しても安全に終了可能な処理中のバックグラウンド処理や、直ちに実行する必要があるタスクを対象としていません。 バックグラウンド処理ガイドでニーズを満たすソリューションを見つけてください。

WorkManager ライブラリを Android プロジェクトにインポートするには、アプリの build.gradle ファイルに次の依存関係を追加します。

    dependencies {
      def work_version = "2.3.4"

        // (Java only)
        implementation "androidx.work:work-runtime:$work_version"

        // Kotlin + coroutines
        implementation "androidx.work:work-runtime-ktx:$work_version"

        // optional - RxJava2 support
        implementation "androidx.work:work-rxjava2:$work_version"

        // optional - GCMNetworkManager support
        implementation "androidx.work:work-gcm:$work_version"

        // optional - Test helpers
        androidTestImplementation "androidx.work:work-testing:$work_version"
      }
    

トピック

基本

入門ガイド

高度なコンセプト

移行ガイド

参考情報

サンプル

  • WorkManagerSample(シンプルな画像処理アプリ)
  • Sunflower(WorkManager などの各種のアーキテクチャ コンポーネントを使用したおすすめの方法を示すデモアプリ)

コードラボ

動画

ブログ