android - 使用 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)
解决方案
它不起作用,因为两个定期工作请求之间的最小间隔是 15 分钟,由MIN_PERIODIC_INTERVAL_MILLIS定义。
根据文档:
创建一个 PeriodicWorkRequest 以在每个间隔期间定期运行一次。PeriodicWorkRequest 保证在此时间间隔内只运行一次。intervalMillis 必须大于或等于 PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS。只要当时满足其他条件,它就可以立即运行,也可以在周期结束时运行,也可以在两者之间的任何时间运行。
我建议您避免如此频繁地安排工作。这最终会消耗更多资源并最终影响电池寿命。
推荐阅读
- c++ - Why does std::tuple break small-size struct calling convention optimization in C++?
- vue.js - Load vue-cli-version-marker from local
- android - Android - 如何在显示活动时自动显示输入法选择器?
- python - creating a command for csv file creating in discord bot(python)
- javascript - 无法加载 CreatedProjects/angular-route.min.js.map 的内容:HTTP 错误:状态代码 404,net::ERR_HTTP_RESPONSE_CODE_FAILURE
- mysql - 如何在mysql中总结时间格式(hh:mm:ss.ms)
- ros - 如何发布 JoyFeedbackArray 消息
- c# - 如何使用 3 个空行作为分隔符拆分文本文件?
- android - 通过 adb 授予 PACKAGE_USAGE_STATS 权限
- c# - 如何对齐通过代码生成的 UWP 中的元素?