java - 如何使用 JobScheduler 为 Android 定期作业指定初始延迟?

标签 java android kotlin jobs android-jobscheduler

我想创建一个具有特定时间和给定周期的运行作业。例如,我想在每个月的第二天安排一个作业,它应该每个月都运行。

查看 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/

相关文章:

java - 为什么 Java 中的十六进制实数需要指数

java - SPRING - 以编程方式创建 MessageSource 并将它们用作 bean

android - 是否需要为所有dpi文件夹提供图像?

mysql - 将枚举列表保存到MySql时,Spring Data JDBC SQLFeatureNotSupportedException

android - 适用于 Android 的 Kotlin 扩展 : How to use bundleOf

java - JPA 查询语法问题还是什么?! JPA SELECT NEW 语法问题?

java - 在Java中,全局变量总是放在堆上吗?

java - HttpURLConnection 保持缓存

android - 如何在 Kotlin 中的 Json 数组中添加多个 Json 对象

kotlin - 我应该如何为属性定义这些复杂的初始化程序