这个问题已经以不同的形式被问过很多次了,但我没有得到正确的答案,并且想知道它是否可能不是一个 android bug。
设置 WorkManager 后,会随机调用 doWork(),有时会快速连续调用多达 10 次以上。
预期行为是每 10-15 分钟调用一次
请参阅下面的详细信息:使用 Android studio Bumblebee 2021.1.1 Patch 2 在 LG K22 上实现
梯度实现:
implementation 'androidx.work:work-runtime-ktx:2.7.1'
Run Code Online (Sandbox Code Playgroud)
主要活动代码:
WorkManager.getInstance(this).cancelAllWorkByTag("scanDevices")
val myMonitorWorkerRequest = PeriodicWorkRequest.Builder(myMonitorWorker::class.java,
15, TimeUnit.MINUTES,5, TimeUnit.MINUTES).build()
WorkManager.getInstance(this)
.enqueueUniquePeriodicWork(
"scanDevices",
ExistingPeriodicWorkPolicy.KEEP,
myMonitorWorkerRequest)
Run Code Online (Sandbox Code Playgroud)
原始工人阶级:
override fun doWork(): Result {
try{
runNotificationService()
return Result.success()
}
catch (e:Exception){
return Result.failure()
}
}
Run Code Online (Sandbox Code Playgroud)
当前工人阶级:
override fun doWork(): Result {
try{
val timeNow = System.currentTimeMillis()
if(timeNow …Run Code Online (Sandbox Code Playgroud)