1
0

【Android】起動したWorkerを停止させる方法

Posted at

はじめに

皆さん、Worker使っていますか?
Serviceへの風当たりがどんどん強くなる今日この頃ですが、公式でもできる限りWorkerへの置き換えを推奨しているご状況です。
以前にもWorkerの取り扱いについて触れましたが、仕様の変更や何らかの問題が発生した際にすでに起動中のWorkerを止めなければならないケースが発生した場合、単純に処理を消すだけではWorkerは止まりません。
明確に停止する必要がありますので、今回は備忘録的にWorkerの停止方法をまとめておこうと思います。

Workerの停止方法

Workerの停止方法には3通りのやり方があります。

main.kt
val workManager = WorkManager.getInstance(context)

// by id
workManager.cancelWorkById(syncWorker.id)

// by name
workManager.cancelUniqueWork("sync")

// by tag
workManager.cancelAllWorkByTag("syncTag")

以上になります。
注意点として、cancelAllWorkByTagは名前の通り同じタグ名を持つWorkerを全て停止させます。
もしキャンセルしたくないWorkerとタグ名が被ってしまっている場合は使えないのでご注意ください。

上記でキャンセルすることで、Workerの状態はCANCELLED状態となり、処理が実行されなくなるというわけです。
ご説明は以上になります。

さいごに

ようやくDovlak配列を運用していく上での解が出ました、次回の記事はDovlak Loverへ捧げたいと思います!

1
0
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
1
0