我想创建一个具有特定时间和给定周期的运行作业。例如,我想在每个月的第二天安排一个作业,它应该每个月都运行。
查看 JobInfo.Builder documentation我还没有找到设置初始延迟的方法。
关于如何实现这一目标的任何想法?
这是以正确的周期运行但不是我想要的初始延迟的代码:
fun build(application: Application, periodicity: Days, startDay: Days) {
val serviceComponent = ComponentName(application, GenerateDebtJobService::class.java)
val builder = JobInfo.Builder(1, serviceComponent)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setPeriodic(TimeUnit.DAYS.toMillis(periodicity.days.toLong()))
(application.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler).schedule(builder.build())
最佳答案
您不能为定期作业应用初始延迟。目前应该可以使用一次性作业作为初始延迟,然后使用周期性间隔安排新的周期性作业。
关于java - 如何使用 JobScheduler 为 Android 定期作业指定初始延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48149705/