1.概览
官方文档:WorkManager
谷歌实验室:官方教程
官方案例:android-workmanager
WorkManger介绍视频:中文官方介绍视频
谷歌工程师博客:https://medium.com/androiddevelopers/workmanager-basics-beba51e94048
Android JetPack实例学习:https://www.jianshu.com/p/68e720b8a939
1.1 定义
使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。
WorkManager, a compatible, flexible and simple library for deferrable background work.
WorkManger是一个可兼容、灵活和简单的延迟后台任务。
1.2 主要功能
最高向后兼容到 API 14
- 在运行 API 23 及以上级别的设备上使用 JobScheduler
- 在运行 API 14-22 的设备上结合使用 BroadcastReceiver 和 AlarmManager
- 添加网络可用性或充电状态等工作约束
- 调度一次性或周期性异步任务
- 监控和管理计划任务
- 将任务链接起来
- 确保任务执行,即使应用或设备重启也同样执行任务
- 遵循低电耗模式等省电功能
WorkManager 旨在用于可延迟运行(即不需要立即运行)并且在应用退出或设备重启时必须能够可靠运行的任务。例如:
- 向后端服务发送日志或分析数据
- 定期将应用数据与服务器同步
WorkManager 不适用于应用进程结束时能够安全终止的运行中后台工作,也不适用于需要立即执行的任务。请查看后台处理指南,了解哪种解决方案符合您的需求。
2. 使用入门
2.1 添加依赖
dependencies {
def work_version = "2.3.4"
// (Java only)
implementation "androidx.work:work-runtime:$work_version"
// Kotlin + coroutines
implementation "androidx.work:work-runtime-ktx:$work_version"
}
2.2 方法指南
WorkManager 中几个重要类
Worker | 创建后台任务,定义工作单元。继承Worker,复写doWork() ,实现需要执行代码。 |
WorkRequest | 定义工作得运行方式和时间,以及任务在运行时应遵循得约束。 |