Есть ли другой способ заставить работу выполняться сразу после вызова enqueueWork ()?
Нет. JobIntentService
использует JobScheduler
, а JobScheduler
запускает задания, когда решает.
Я также использую PeriodicWorkRequest от WorkManager, чтобы проверять, можно ли выполнить работу, каждые X минут и, если да, я вызываю JobIntentService и ставлю в очередь нужную мне работу.
Вы можете рассмотреть возможность упрощения своего кода и просто выполнять свою работу в своем Worker
, если единственным поставщиком работы для JobIntentService
является Worker
. Или, чтобы фактическая «работа» была выполнена классом, который может использоваться либо вашим Worker
, либо вашим JobIntentService
. Как JobIntentService
использует JobScheduler
, так и WorkManager
. Ваша текущая система, похоже, имеет задание, просто запускающее другое задание, и вы можете уменьшить время ожидания, объединив его.