在我的 SDK 中,我用来JobIntentService
在后台做一些工作。我注意到,当我打电话时,这项工作并没有立即开始enquequeWork()
,而是在一段时间后开始。我不能用来foreground service
做这项工作,因为应用程序不能按客户的要求作为前台运行。有没有其他方法可以强制在enqueueWork()
被调用后立即完成工作?我还使用WorkManager
'sPeriodicWorkRequest
来检查工作是否可以完成,每 X 分钟一次,如果可以,我会调用'sJobIntentService
并将我需要的工作排入队列。
问问题
442 次
1 回答
2
在调用 enqueueWork() 后,有没有其他方法可以强制立即完成工作?
不JobIntentService
使用JobScheduler
,并JobScheduler
在决定时运行作业。
我还使用 WorkManager 的 PeriodicWorkRequest 来检查工作是否可以完成,每 X 分钟一次,如果可以,我调用 JobIntentService 并将我需要的工作排入队列。
Worker
如果唯一的工作供应商JobIntentService
是 this ,您可能会考虑简化您的代码并在您的工作中完成您的工作Worker
。或者,让您Worker
或您的JobIntentService
. 就像JobIntentService
使用一样JobScheduler
,也是如此WorkManager
。您当前的系统似乎有一个工作只是触发另一个工作,您可以通过整合这些来减少延迟。
于 2019-03-31T14:39:52.097 回答