Android Kotlin基礎講座 09.2:WorkManager

概念:WorkManagerとは

WorkManagerはAndroidアーキテクチャコンポーネントの一つであり、Android Jetpackの一部です。WorkManagerは延期可能かつ実行の保証が要求されるバックグラウンド作業用に使われます。

  • 延期可能とは、その作業が即座に実行される必要がないということを意味しています。例として、バックグラウンドで分析データをサーバーに送ったり、データベースと同期するといったものは延期可能な作業と言えます。
    実行が保障されるとは、アプリが終了したり、端末が再起動してもタスクが実行されるということを意味しています。

WorkManagerがバックグラウンド作業を実行している間は、互換性の問題や、バッテリーおよびシステムの健全性のベストプラクティスに則ることにもなります。WorkManagerはAPI14までの下位互換性を持っています。WorkManagerは端末のAPIレベルに応じて、バックグラウンドタスクの最適なスケジューリング方法を選択します。(API23以上の場合)JobSchedulerや、AlarmManagerBroadcastReceiverの組み合わせを使う場合もあります。

またWorkManagerではバックグラウンドタスクが動作するときの基準を設定できます。例えば、バッテリー状態やネットワーク状態、充電状態が特定の基準を満たしたときにのみ、あるタスクを実行させたいときなどです。制約の設定方法については、記事の後半で学習します。

Note:

  • WorkManagerはアプリ処理が遮断された時に、安全に終了できるような処理中のバックグラウンドタスク向けではありません。
  • WorkManagerは即時執行を要求するようなタスク向けではありません。

この記事では、一日一回、ネットワークからDevByteの動画のプレイリストを事前に取得するタスクをスケジューリングします。このタスクをスケジューリングするために、WorkMangerライブラリを使用します。