android - WorkManager 是否在满足所有约束后立即执行其 PeriodicWork?

标签 android android-jetpack android-workmanager

似乎我找不到任何关于 WorkManager 在满足所有约束后如何处理其工作的具体信息。

假设我们设置了一个这样的 WorkManager。

val constraints = Constraints.Builder()
      .setRequiredNetworkType(NetworkType.CONNECTED)
      .build()

val syncOnlyOnce = PeriodicWorkRequest.Builder(PeriodicJob::class.java, updateInterval, TimeUnit.MILLISECONDS)
     .setConstraints(constraints)
     .build()

假设 updateInterval 为 1h,网络已连接且工作已执行。 一小时过去了,设备断开连接,工作没有执行。

当设备重新连接时会发生什么? WorkManager 是立即执行它的工作(分别是下一个可能的执行窗口),还是需要等待另一个时间段(例如~1h)?

最佳答案

不,WorkManager 不一定会立即执行您的工作。正如官方文档 ( https://developer.android.com/topic/libraries/architecture/workmanager ) 中所述,工作是可以推迟的。在设备休眠模式等情况下,您的工作可能不会立即执行。

如果您想了解有关您的选项的更多信息,请参阅此页面:https://developer.android.com/guide/background/

关于android - WorkManager 是否在满足所有约束后立即执行其 PeriodicWork?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859047/

相关文章:

android - 使用 KOIN 设置 WorkManager

android - Smack 4.1 Android 匿名注册到 Openfire

java - 通过 contentobserver 添加/删除/编辑联系人时通知我的应用程序

android - SQLite 数据库架构 : Empty Tables

java - Android:Gradle 编译错误期望元素值是常量表达式 - 功能模块

firebase - 异步功能在 WorkManager 中不起作用

android - Delphi XE7 Android 启动画面-背景颜色

android - 如何在 Jetpack Compose 中从可组合导航到 Activity 或 fragment ?

android - Livedata正在执行一项 Activity ,但未进行另一项 Activity

android - 未调用 Workmanager Worker 类 doWork() 方法