LoginSignup
50
33

More than 3 years have passed since last update.

いまさらWorkManager〜概要編〜

Last updated at Posted at 2019-04-09

はじめに

Android Jetpackで追加されたWorkManagerを学習してみます。
今更感がありますが、改めて確認してみると、かなり便利な機能です。
似たような機能としてJobSchedulerもあります。JobSchedulerについてはこちらの記事を確認してください。
公式サイトを見ながら必要となる技術を説明していきます。下記の表は記事を掲載するたびに更新していきます。

タイトル 内容 リンク
いまさらWorkManager〜基本編①(必要最小限で実装:1回のみの実行)〜 一度だけのバックグラウンド処理の実装方法 https://qiita.com/naoi/items/283f522d3f49c998d36d
いまさらWorkManager〜基本編②(処理の起動条件を設定する)〜 実行条件の実装方法 https://qiita.com/naoi/items/e27c7b70c6401ce2c39c
いまさらWorkManager〜基本編③(繰り返し処理を実行する)〜 定期的に処理を実行する設定方法 https://qiita.com/naoi/items/5ca4ee0b4b8520649365
いまさらWorkManager〜基本編④(状態の確認とキャンセル)〜 WorkManagerに登録されているWorkの取得やWorkの状態、キャンセル方法 https://qiita.com/naoi/items/59775846b8a3702c52a1
いまさらWorkManager〜基本編⑤(Workerクラスにデータを渡す)〜 Workerに任意のデータをを渡したいときのやり方 https://qiita.com/naoi/items/74411259815aabfdaaf8
いまさらWorkManager〜基本編⑥(唯一無二のWorker)〜 Workerをユ一意に、1つしかない状態にする方法 https://qiita.com/naoi/items/df1ea9bd89239ce041f5

上記の記事で「いまさらWorkManager」を説明していきます。

WorkManagerの概要

WokrManagerは以下の状況下で、定期的に非同期的なタスクをスケジュールできます。

  • アプリが終了している
  • デバイスが再起動した

図で表すとこのようになります。

概要図.png

WorkManagerが提供している機能

WorkManagerは以下の機能を提供しています。

  • APIレベル14以降の下位互換とAPIレベル23以降の互換
    • APIレベル23以降ではJobSchedulerが同等の機能を提供しています。
    • APIレベル14〜22までは、BroadcastReceiver と AlarmManagerの組み合わせで同等の機能を提供しています。
  • ネットワークやバッテリーといった端末の状態に併せて、スケジューリングしたタスクの実行の要否を判断できます。
  • 1回限りの非同期タスクを設定できます。
  • スケジューリングしたタスクのモニタリングや制御をできます。
  • タスクをチェーンできます。
  • アプリやデバイスが再起動してもスケジューリングしたタスクは実行されることが保証されています。

使い所

公式では以下のようなケースを想定しているようです。

  • 定期的にサーバへ接続する
  • ログまたは分析結果をバックエンドサービスに送信する

使っていは行けないケース

公式では以下のようなケースは使うべきでないと言っています。

  • アプリ終了時の終了処理
  • 即時実行が必要なタスク

まとめ

古い端末や新しい端末まで幅広く対応している事がわかります。
特に、「BroadcastReceiver と AlarmManager」の組み合わせは懐かしさすら感じさせます。
だからといって、JobSchedulerにしてしまうと、APIレベル23以降が対象になってしまうといった悩みも解消してくれるようです。
昨今の端末に対応するにはWorkManagerが有効そうですね。
次回の記事では、実際の使い方について説明していきます。

50
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
33