0Pricing
Android Academy · 课时

何时使用 WorkManager

选择合适的后台任务工具

何时使用 WorkManager 是 CoddyKit 上的免费 Android Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Android Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Android Academy 课程共包含 4 节课。

何时使用 WorkManager

WorkManager 是 Android 上用于可延迟且有保证的后台工作的推荐 API。如果某项任务最终必须运行,即使应用关闭或设备重启后仍然如此,那么 WorkManager 就是合适的工具。

可延迟且有保证

两个关键词定义了 WorkManager 的适用范围:

  • 可延迟:不需要立即运行,可以等待合适的条件
  • 有保证:最终一定会运行,即使应用退出或设备重启也不受影响

适用场景

WorkManager 适合执行以下工作:

  • 上传日志或分析数据
  • 与服务器同步数据
  • 定期备份内容
  • 压缩或处理图像

这些工作都可以等待,并且不能丢失。

何时不要使用它

以下情况不适合使用 WorkManager:

  • 与当前界面相关、需要在应用内立即完成的工作:请在 viewModelScope 中使用协程
  • 精确时间的闹钟:请使用 AlarmManager
  • 由用户发起且必须立即完成的长时间任务:可以考虑使用前台服务

它会维护系统健康

WorkManager 会批量处理并延后工作,以适应休眠模式、电量和后台限制。您描述需求,系统选择高效的运行时间,从而节省电量。

约束决定执行时机

您可以附加“仅在不按流量计费的网络上运行”或“仅在充电时运行”等约束。WorkManager 会等待这些条件满足后再运行任务。

它会处理持久化

WorkManager 会将工作队列存储在内部数据库中。如果应用被终止或手机重启,您安排的工作会得到恢复并继续运行。这些功能无需您额外实现。

一次性与周期性工作

WorkManager 支持两种工作形式:

  • OneTimeWorkRequest:运行一次
  • PeriodicWorkRequest:按时间间隔重复运行(最短 15 分钟)

内置重试

如果工作出现暂时性失败,返回 Result.retry() 会告诉 WorkManager 根据退避策略稍后重试,因此您无需自行编写重试逻辑。

添加依赖

将 WorkManager 运行时工件(包含 KTX 协程支持)添加到模块的 Gradle 文件中。

dependencies {
    implementation("androidx.work:work-runtime-ktx:2.9.1")
}

思维模型

可以把 WorkManager 想象成一个可靠的后台任务待办清单:您添加带有条件的任务,系统会承诺在合适的时间完成它,即使中途受到各种干扰也不例外。

快速检查

测试您对 WorkManager 使用时机的理解。

回顾

您已经了解了 WorkManager 的用途:

  • 运行可延迟且有保证的后台工作
  • 适合同步、上传和备份;不适合立即执行或需要精确时间的工作
  • 能够跨应用终止和设备重启持久保存工作,遵守电量限制并支持重试
  • 支持带约束的一次性和周期性工作

下一节:创建 Worker。

常见问题解答

「何时使用 WorkManager」课时是免费的吗?

是的 — 「何时使用 WorkManager」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Android Academy 课程的其余内容,请升级到 CoddyKit PRO。 Android Academy 课程共包含 4 节课。

「何时使用 WorkManager」这节课中我会学到什么?

选择合适的后台任务工具 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Android Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Android Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「何时使用 WorkManager」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Android Academy 课中编写并运行代码吗?

能。每节 Android Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 何时使用 WorkManager
  2. 创建 Worker
  3. 约束和调度
  4. 周期性任务和链式任务
← 返回 Android Academy