使用 WorkManager 来调度任务
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,来源:2018 Android 开发者峰会