gpt4 book ai didi

android - workstatus 观察者始终处于排队状态

转载 作者:太空狗 更新时间:2023-10-29 13:47:49 26 4
gpt4 key购买 nike

我正在尝试观察我的workers,但他们总是处于queued 状态,或者有时处于RUNNING 但从未SUCCEEDFAILED

workStatus.statedoWork() 返回的还是不同的?

这是我的工作脚本:

package com.mockie.daikokuten.sync.workers

import androidx.work.Worker


class TestWorker:Worker()
{

override fun doWork():Worker.Result
{
return Worker.Result.SUCCESS
}

}

这是观察 worker 的脚本:

 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 中的结果:

 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

最佳答案

对于您的定期工作请求,您应该看到

ENQUEUED - RUNNING - ENQUEUED

其中后面的ENQUEUED是下一个工作请求的状态。

您可能会在 RUNNING 和 ENQUEUED 之间非常短暂地看到 SUCCEEDED,但我从未见过。

对于您看到的一次性工作请求

ENQUEUED - RUNNING - SUCCEEDED

或者您在 doWork() 中返回的任何内容。

(安卓 8.1 API 27、1.0.0-alpha04)

关于android - workstatus 观察者始终处于排队状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com