WorkManager

2023-01-14  本文已影响0人  筱湮

1. WorkManager是什么

WorkManager是适合用于持久性工作的推荐解决方案。如果工作始终要通过应用重启和系统重新启动来调度,便是持久性的工作。由于大多数后台处理操作都是通过持久性工作完成的,因此 WorkManager 是适用于后台处理操作的主要推荐 API

持久性工作的类型

WorkManager 可处理三种类型的持久性工作:

立即执行:必须立即开始且很快就完成的任务,可以加急。
长时间运行:运行时间可能较长(有可能超过 10 分钟)的任务。
可延期执行:延期开始并且可以定期运行的预定任务。

2. 何时使用WorkManager

管理和调度可延迟的,但需保证执行的后台任务库

1.可延迟的:即使不立即执行,仍有必要在未来完成的任务
例如:向服务器发送数据(上传分析数据)

  1. 保证执行:即使在应用程序被关闭,或者设备重启的情况下,任务也会照常执行
    例如:备份图片

以下是一些适合使用 WorkManager 的任务的典型示例

值得注意的是,我们谈到的“后台操作”,不是,也不包括“后台线程”。

WorkManager不能用来替代Kotlin Coroutines,线程池,以及RxJava等API,但可以和他们配合使用。

WorkManager也不适用于需要在特定时间触发的任务(可以用AlarmManager)

3. 如何使用WorkManager

需要了解以下几个 WorkManager 类:

具体示例代码请看官方示例:https://developer.android.com/topic/libraries/architecture/workmanager/basics?hl=zh-cn

4. WorkManager的优势

WorkManager 是一个极其灵活的库,具有许多其他优势。这其中包括:

注意
WorkManager 依赖于若干 API,例如 JobSchedulerAlarmManager。WorkManager 会根据用户设备 API 级别等条件选择使用适合的 API。如需了解详情,请查看 WorkManager 文档

练习Demo(使用WorkManager Codelab编写的Demo): https://github.com/ooxiaoyan/android-workmanager-start_kotlin

(使用 Blur-O-Matic,对照片进行模糊处理,并将处理后的照片保存到文件中)

最后,附学习资源:

上一篇 下一篇

猜你喜欢

热点阅读