使用 WorkManager 来调度任务

原文链接:Schedule tasks with WorkManager | Android Developers

WorkManager 的 API 让您能轻松地指定可推迟的异步任务并安排其执行的时间,即使应用已经退出或者设备重启。

主要特点:

  • 向后兼容至 API 14
    • 在 API 23+ 的设备上使用 JobScheduler
    • 在 API 14-22 的设备上组合使用 BroadcastReceiver + AlarmManager
  • 添加网络可用性或电量等工作限制
  • 调度一次性或周期性的异步任务
  • 监测和管理已调度的任务
  • 任务可连锁在一起
  • 即使应用程序或设备重新启动,也可保证任务执行

WorkManager 适用于可推迟的、无需立即执行的任务,即使应用程序退出或设备重启也要保证可靠运行。例如:

  • 发送日志或分析数据给服务端
  • 定期与服务器同步应用程序数据

WorkManager 不适用于在应用进程消失时可以安全终止的进程内的后台任务,或者需要立即执行的任务。请参阅 后台任务指南 以明确您需要哪种解决方案。

查看 发行说明 以了解如何将 WorkManager 导入 Android 项目。

话题

WorkManager 基础知识

使用 WorkManager 来调度特定条件下执行的单次任务,或者是定期运行的任务。

WorkManager 高级进阶

设置任务的链式序列(chained sequences),设置可传参并返回值的任务,设置指定的、唯一的任务序列。

从 Firebase JobDispatcher 迁移

更新现有应用,以便使用 WorkManager 而不是 Firebase JobDispatcher。

更多资源

示例

  • WorkManagerSample,一款简单的图像处理应用
  • Sunflower,一款演示各种架构组件用法的示例应用,包括 WorkManager。

Codelabs

  • 使用 WorkManager,支持 KotlinJava 代码

视频

博客