WorkManager链式任务初始延迟计数机制及特定场景起始时机咨询
WorkManager链式任务初始延迟计数机制及特定场景起始时机咨询
嘿,我来帮你把这个问题掰扯清楚~
首先明确告诉你:每个请求的初始延迟都是独立计数的,不是共用一个计时起点。
咱们结合你的代码来拆解:
- 你通过
triggers.map循环创建了多个OneTimeWorkRequest,每个请求都单独调用了setInitialDelay(5000, TimeUnit.MILLISECONDS),这就意味着每个任务本身都自带了5秒延迟的属性,它们的计时是各自独立的。 - 你后续用
beginWith+then把这些任务串成了串行链式任务,执行顺序是严格按队列来的:- 第一个任务被加入队列后,会从你调用
enqueue()的那一刻开始计时5秒,时间到了就执行这个任务。 - 第一个任务执行完成后,第二个任务才会进入调度流程,此时它才会开始自己的5秒延迟计时,计时结束后执行。
- 后面的每个任务都是如此,必须等前一个任务完全执行完毕,才会启动自己的延迟倒计时。
- 第一个任务被加入队列后,会从你调用
简单来说,你这个链式任务的总耗时会是「5秒 + 任务1执行时间 + 5秒 + 任务2执行时间 + ...」,而不是所有任务一起等5秒后依次执行。
备注:内容来源于stack exchange,提问作者Viewed
相关产品推荐
相关产品推荐

