Как вы написали, WorkManager может только попытаться отменить работу.В частности, если задача запланирована для запуска и вы отменили ее, WorkManager удалит ее из расписания.
Однако, если задачи уже выполняются, WorkManager не может безопасно прервать ее.Наилучшим вариантом является то, что вы пишете свой класс Worker, заботясь о внешнем аннулировании.Это было рассмотрено в работе с WorkManager докладом (около 15 минут) , записанным на Саммите разработчиков Android 2018.
Чтобы стать хорошим гражданином, вы можете объединить WorkManager в пулиспользуя метод: ListenableWorker.isStopped()
.Вы можете объединить это с обратным вызовом onStopped
, чтобы очистить ваш код, когда вы или ОС запрашиваете остановить задачу.