20.4.3 WorkManager,デーモンWorkおよび非デーモンWorkのライフサイクル
ここでは,WorkManager,デーモンWorkおよび非デーモンWorkのライフサイクルについて説明します。
- 〈この項の構成〉
-
(1) WorkManagerのライフサイクル
WorkManagerは,アプリケーション開始時に作成されます。アプリケーション中でルックアップされると,アプリケーション開始時に作成されたWorkManagerが返されます。複数回ルックアップされても,アプリケーション開始時に作成された同じWorkManagerが呼び出されます。WorkManagerは,アプリケーションの停止時に破棄されます。
また,WorkManagerは永続化されません。そのため,JavaVMが終了した場合,作成されたWorkManagerおよびスケジュールされた非同期処理は破棄されます。
WorkManagerのライフサイクルを次の図に示します。
ページの先頭へ
(2) デーモンWorkのライフサイクル
デーモンWorkは,scheduleメソッドの実行時に作成されます。また,WorkManagerの停止時(WorkManagerに対応するアプリケーションの停止時)に破棄されます。WorkManagerの停止時には,WorkManagerはデーモンWorkのreleaseメソッドを実行したあと,すべてのデーモンWorkが終了するまで待機します。
デーモンWorkのライフサイクルを次の図に示します。
ページの先頭へ
(3) 非デーモンWorkのライフサイクル
非デーモンWorkは,scheduleメソッドの実行時に作成されます。また,runメソッドの処理が完了すると終了します。非デーモンWorkの実行中の場合またはキューで実行待ちの場合にWorkManagerを停止したとき(対応するアプリケーションを停止したとき),非デーモンWorkが停止するまで待機してから終了します。
非デーモンWorkのライフサイクルを次の図に示します。
ページの先頭へ