首页 > 解决方案 > 使用 Work Manager API 每秒执行一次任务

问题描述

工作管理器是一个新的 API,我尝试每秒执行一次任务,但它不起作用。

这是我的工人阶级

class TestingWorker : Worker(){
    override fun doWork(): Result {
        Log.i("CheckWorker","Result here")
        return Result.SUCCESS
    }
}

这就是我所说的。

 val recurringWork: PeriodicWorkRequest = PeriodicWorkRequest.Builder(TestingWorker::class.java, 1, TimeUnit.SECONDS).build()
 WorkManager.getInstance()?.enqueue(recurringWork)

标签: androidkotlinbackground-processbackground-serviceandroid-workmanager

解决方案


它不起作用,因为两个定期工作请求之间的最小间隔是 15 分钟,由MIN_PERIODIC_INTERVAL_MILLIS定义。

根据文档

创建一个 PeriodicWorkRequest 以在每个间隔期间定期运行一次。PeriodicWorkRequest 保证在此时间间隔内只运行一次。intervalMillis 必须大于或等于 PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS。只要当时满足其他条件,它就可以立即运行,也可以在周期结束时运行,也可以在两者之间的任何时间运行。

我建议您避免如此频繁地安排工作。这最终会消耗更多资源并最终影响电池寿命。


推荐阅读