Android Kotlin基礎講座 09.2:WorkManager
目次
まとめ
- WorkManager APIを使用すると、確実に実行する必要のある延期可能な非同期タスクを簡単にスケジューリングできます。
- 実際のアプリのほとんどはロングランニングバックグラウンドタスクを行う必要があります。最適化された効率的な方法でバックグラウンドタスクをスケジューリングするためには、WorkManagerを使用します。
- WorkManagerライブラリ内のメインクラスはWorker、WorkRequest、WorkManagerです。
- Workerクラスはタスクの単位を表します。バックグラウンドタスクを実装するには、Workerクラスを継承し、doWork()メソッドをオーバーライドします。
- WorkRequestクラスはタスクのユニットを行うためのリクエストを表します。WorkRequestはWorkManager内でスケジューリングしたタスクのパラメーターを指定するためのベースクラスです。
- WorkRequestクラスの具体的な実装は二つあります。一度きりのタスク用のOneTimeWorkRequestと、繰り返したいタスク用のPeriodicWorkRequestです。
- WorkRequestを定義する際には、いつWorkerが実行されるべきかを指定するConstraintsを指定することができます。Constraintsには端末がアイドル状態か、またWi-Fiにつながれているかなどがあります。
- 制約をworkRequestに追加するには、Constraints.Builderドキュメンテーションのリストにあるセットメソッドを使います。例として、バッテリーが少ないときにはWorkRequestを行わせないようにするには、setRequiresBatteryNotLow()セットメソッドを使います。
- WorkRequestを定義した後は、Androidシステムにタスクを渡します。これをするためには、WorkManager enqueueメソッドの一つを使って、タスクをスケジューリングします。
- Workerが実行される正確な時間はWorkRequest内で使われている制約やシステムの最適化に依存します。WorkManagerはこれらの制限を考慮して、可能な限りベストな動作をするように設計されています。
お疲れさまでした。次の講座は 10.1 スタイルとテーマです。
おすすめ書籍
Kotlinの文法をまず学びたい!という方には以下の書籍がおすすめです。Kotlinは日本語書籍がまだ豊富とは言えない状況ですが、細かく解説されており、Kotlin入門者のかたでもつまずくことなく学習できると思います。
[itemlink post_id=”1743″]実際にアプリを作りながら覚えていきたい!という方には以下もお勧めです。はじめに上の書籍で文法をさらっと学んでから取り組むのがお勧めです。
[itemlink post_id=”1745″]