Android WorkManager 用例

问题描述

我正在阅读有关 WorkManager (https://developer.android.com/guide/background) 的信息。令我困惑的是 2 个相互矛盾的陈述。它说应该使用 WorkManager:

  1. 对于应该立即执行并需要继续处理的任务
  2. 对于可以在未来任何时间运行的任务,可以推迟

有人可以解释这一点并向我展示 2 个简单的示例,其中包含执行语句编号 1 和语句编号 2 情况的 WorkManger 代码。谢谢

解决方法

WorkManager 基本上是将工作从您的流程/活动卸载到专门的工作人员,这意味着您的应用不需要处于活动状态,WorkManager 即可完成您的工作。

上面提到的两个语句都有道理,我不会写代码,但我会提到支持两个语句的用例。

Statement1 表示应该立即执行并需要继续处理的任务,这意味着您可以立即安排任何任务并且将长时间运行,例如考虑您通过点击上传一些图片按钮,因此您将在用户单击上传(立即)后立即启动 UploadWorker,即使用户杀死您的应用程序,上传仍应发生,这将由 WorkManager 负责。

Statement2 表示可以在未来任何时间运行的任务可以被推迟,这意味着您可以在未来的某个时间点安排一些工作,WorkManager 将在您想要的时间运行它。一个典型的例子是备份,你想在每天早上备份用户数据,那么你可以创建一个BackUpWorker并让WorkManager在以后的时间定期运行它。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...