工作状态观察者始终处于排队状态 [英] workstatus observer always in enqueued state
问题描述
我试图观察我的 workers
但他们总是处于 queued
状态或者有时它是 RUNNING
但从来没有 SUCCEED
或 FAILED
.
I am trying to observe my workers
but they are always in queued
state or sometime it's RUNNING
but never SUCCEED
or FAILED
.
是 workStatus.state
来自 doWork()
的返回还是不同?
is workStatus.state
from return in doWork()
or it's different?
这是我的工作脚本:
package com.mockie.daikokuten.sync.workers
import androidx.work.Worker
class TestWorker:Worker()
{
override fun doWork():Worker.Result
{
return Worker.Result.SUCCESS
}
}
这是观察工人的脚本:
val test = PeriodicWorkRequest.Builder(
TestWorker::class.java,
PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
TimeUnit.MILLISECONDS)
.addTag("test_worker")
.build()
WorkManager.getInstance()?.enqueueUniquePeriodicWork("test_worker", ExistingPeriodicWorkPolicy.KEEP, test)
WorkManager.getInstance()!!.getStatusesByTag("test_worker")
.observe(this, Observer { workStatus ->
if (workStatus != null)
{
for(ws in workStatus)
{
Log.d(":dump2 id ", ws.id.toString())
Log.d(":dump2 tag", ws.tags.toString())
Log.d(":dump2 state", ws.state.toString())
}
}
})
这是Logcat中的结果:
this is the result in Logcat:
07-23 17:12:30.901 29740-29740/com.mockie.daikokuten D/:dump2 id: 5c6297f7-11d8-4f2f-a327-773672a7435c
07-23 17:12:30.901 29740-29740/com.mockie.daikokuten D/:dump2 tag: [test_worker, com.mockie.daikokuten.sync.workers.TestWorker]
07-23 17:12:30.901 29740-29740/com.mockie.daikokuten D/:dump2 state: ENQUEUED
推荐答案
对于您的定期工作请求,您应该看到
For your periodic work request you should see
ENQUEUED - RUNNING - ENQUEUED
其中后一个 ENQUEUED 是下一个工作请求的状态.
where the latter ENQUEUED is the state of the next work request.
您可能会在 RUNNING 和 ENQUEUED 之间短暂地获得 SUCCEEDED,但我从未见过这种情况.
You might get very briefly a SUCCEEDED between RUNNING and ENQUEUED, but I have never seen that.
您看到的一次性工作请求
For a onetime work request you see
ENQUEUED - RUNNING - SUCCEEDED
或者你在 doWork() 中返回的任何东西.
or whatever you return in doWork().
(Android 8.1 API 27,1.0.0-alpha04)
(Android 8.1 API 27, 1.0.0-alpha04)
这篇关于工作状态观察者始终处于排队状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!