要使用它的子类OneTimeWorkRequest或PeriodicWorkRequest。 WokManager 管理任务请求和任务队列,发起的WorkRequest会进入它的任务队列。...该类有两个实现类,可用于创建 OneTimeWorkRequest 和 PeriodicWorkRequest 请求。...OneTimeWorkRequest 适用于调度非重复性工作,而 PeriodicWorkRequest 则更适合调度以一定间隔重复执行的工作。...//任务的运行时间间隔定为一小时 PeriodicWorkRequest saveRequest = new PeriodicWorkRequest.Builder(SaveImageToFileWorker.class...如果对任务的执行实际比较敏感,可以将PeriodicWorkRequest 配置为在每个时间间隔的灵活时间段内执行。
但如果您希望任务可以周期性地重复执行,则可以使用 PeriodicWorkRequest。...PeriodicWorkRequest 配合充电状态约束 在这种情景下,我们需要为 PeriodicWorkRequest 添加一个充电状态约束 (charging constraint),并将其加入队列...关于此功能,如果您想要了解更多,可以阅读 PeriodicWorkRequest.Builder 文档。...PeriodicWorkRequest 的状态 周期性任务不会以 SUCCEEDED 状态结束,它会持续运行直到被取消。...我们可以通过 PeriodicWorkRequest 的 WorkInfo 来观察这些 Data。
Log.i("WorkInfo", doWork); } } }); 7.周期性任务 使用PeriodicWorkRequest...周期性任务 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { PeriodicWorkRequest...periodicWorkRequest = new PeriodicWorkRequest .Builder(MyWork.class, Duration.ofMinutes
7.周期性任务PeriodicWorkRequest WorkRequest有两种实现方式,OneTimeWorkRequest和PeriodicWorkRequest,即一次性任务和周期性任务...new PeriodicWorkRequest.Builder(Upload.class,15,TimeUnit.MINUTES).build();只需要做此修改,其他地方一样 8.任务链
WorkRequest也是一个抽象类,使用的时候是框架库中提供的子类 OneTimeWorkRequest和 PeriodicWorkRequest类,分别代表一次性任务和周期任务 WorkRequest.Builder...它有两个具体的实现: OneTimeWorkRequest.Builder类和 PeriodicWorkRequest.Builder类,可以分别创建相应的任务请求实例。...这时候可使用到 PeriodicWorkRequest.Builder 来创建一个周期任务。跟一次性任务一样,通过 WorkManager.enqueue() 方法加入到工作任务队列中。...val photoCheckBuilder = PeriodicWorkRequest.Builder(12, TimeUnit.HOURS) //
要使用它的子类 OneTimeWorkRequest 或 PeriodicWorkRequest。...PeriodicWorkRequest saveRequest = new PeriodicWorkRequest.Builder(SaveImageToFileWorker.class,...如果任务的性质对运行的时间比较敏感,可以将 PeriodicWorkRequest 配置为在每个时间间隔的灵活时间段内运行,如图 1 所示。...[在这里插入图片描述] 如需定义具有灵活时间段的定期工作,请在创建 PeriodicWorkRequest 时传递 flexInterval和 repeatInterval两个参数,如下所示。...PeriodicWorkRequest sendLogsWorkRequest = new PeriodicWorkRequest.Builder(SendLogsWorker.class,
分为OneTimeWorkRequest和PeriodicWorkRequest两种。 WorkDatabase: 用于持久化存储任务的状态、约束条件等信息。...使用OneTimeWorkRequest或PeriodicWorkRequest来创建工作请求,并设置触发条件。
其实工作管理器不仅支持设定一次性工作,也支持设定周期性工作,此时用到的工作请求名叫PeriodicWorkRequest,它的构建代码示例如下: // 3、构建周期性任务的工作请求。...周期性任务的间隔时间不能小于15分钟 String workTag = "PeriodTag"; PeriodicWorkRequest periodRequest = new PeriodicWorkRequest.Builder
要使用它的子类 OneTimeWorkRequest 或 PeriodicWorkRequest。...具体是什么方式和 Android 的版本和依赖环境有关: 定时任务 前面说了 OneTimeWorkRequest 是指任务只需要执行一遍,而 PeriodicWorkRequest 则可以发起一个多次执行的定时任务...: val request = PeriodicWorkRequest .Builder(MainWorker::class.java, 15, TimeUnit.MINUTES)...如果是 PeriodicWorkRequest,我想到的办法是每次执行之前,根据标签去取消已有的任务。 以上,就是本文对 WorkManager 的简单介绍和用法讲解。 保活?
workRequest 抽象类,有两个具体的子类:oneTimeWorkRequest和periodicWorkRequest, 一个来执行单次任务,一个来执行周期任务。...periodicWorkRequest最低的时间间隔是15分钟执行一次。 workManager 管理workRequest的队列,全局唯一。
4 配置WorkRequest WorkManager主要是通过WorkRequest来配置任务的,而它的WorkRequest种类包括: OneTimeWorkRequest PeriodicWorkRequest...由于篇幅有限,这里就不一一展开,感兴趣的可以查看源码 4.2 PeriodicWorkRequest PeriodicWorkRequest是可以周期性的执行任务,它的使用方式与配置和OneTimeWorkRequest...WorkContinuation.combine(arrayListOf(left, right)) .then(saveRequest) .enqueue() 需要注意的是:如果你的WorkRequest是PeriodicWorkRequest
设置标签 .setInputData(inputData) //设置输入数据 .build(); //还有周期性请求PeriodicWorkRequest
该库提供了这个类的两个直接子类:OneTimeWorkRequest和PeriodicWorkRequest。...WorkRequest.Builder:用于创建WorkRequest对象的辅助类,同样,我们要使用它的一个子类,OneTimeWorkRequest.Builder 和PeriodicWorkRequest.Builder
该类有两个派生实现,可用于创建 OneTimeWorkRequest 和 PeriodicWorkRequest 请求。...顾名思义,OneTimeWorkRequest 适用于调度非重复性工作,而 PeriodicWorkRequest 则更适合调度以一定间隔重复执行的工作。...OneTimeWorkRequestBuilder() .setInitialDelay(10, TimeUnit.MINUTES) .build() 我这边主要用的是重复的调度,也不需要别的参数设置,所以直接创建了PeriodicWorkRequest
TestWorker::class.java).setInputData(inputData).build() WorkManager.getInstance().enqueue(workRequest) 通过PeriodicWorkRequest
WorkRequest是一个抽象类,你需要使用它一个子类,OneTimeWorkRequest或PeriodicWorkRequest。...WorkRequest.Builder 创建WorkRequest对象的帮助类,你需要使用子类OneTimeWorkRequest.Builder或PeriodicWorkRequest.Builder
PeriodicWorkRequest newsWorkRequest = new PeriodicWorkRequest.Builder(NewsWorker.class, 1, TimeUnit.HOURS
可延期 一次性或定期 PeriodicWorkRequest 和 Worker。 接下来来看具体的使用方法。...协程工作CoroutineWorker 1、将继承类修改为CoroutineWorker 2、实现getForegroundInfo方法,内容与上getForegroundInfo一致 定时任务PeriodicWorkRequest
class PullEngine { fun schedulePull(){ //java就请用PeriodicWorkRequest.Builder类 val
// 对于一次性 WorkRequest,请使用 OneTimeWorkRequest, //对于周期性工作,请使用 PeriodicWorkRequest // 构建一次性请求
领取专属 10元无门槛券
手把手带您无忧上云