Android 在运行定期任务之前立即运行工作-WorkManager

Android 在运行定期任务之前立即运行工作-WorkManager,android,android-workmanager,periodic-task,Android,Android Workmanager,Periodic Task,我希望在流程结束后立即运行定期任务,然后运行定期每日任务。我知道如何运行定期任务,但我的问题是,我需要立即运行定期任务一次,然后定期任务应该每天运行一次。目前,我需要等待1天才能执行定期任务,我如何才能做到这一点?最好的选择是使用OneTimePeriodicWorker,在返回Result.success()之前安排定期工作人员 因此,您将WorkRequest排队以立即运行: val asSoonAsPossibleWorkRequest = OneTimeWorkRequestBuilde

我希望在流程结束后立即运行定期任务,然后运行定期每日任务。我知道如何运行定期任务,但我的问题是,我需要立即运行定期任务一次,然后定期任务应该每天运行一次。目前,我需要等待1天才能执行定期任务,我如何才能做到这一点?

最好的选择是使用
OneTimePeriodicWorker
,在返回
Result.success()
之前安排定期工作人员

因此,您将WorkRequest排队以立即运行:

val asSoonAsPossibleWorkRequest = OneTimeWorkRequestBuilder<InitialWorker>
                .addTag(TAG_OUTPUT)
                .build()

WorkManager.getInstance(context).enqueue(asSoonAsPossibleWorkRequest)
class InitialWorker(ctx: Context, params: WorkerParameters) : Worker(ctx, params) {

   override fun doWork(): Result {
       // Do Something Useful

       // Enqueue the periodic Worker
       val dailyWorkRequest = PeriodicWorkRequestBuilder<DailyWorker>(1, TimeUnit.DAYS)
               .addTag(TAG_OUTPUT)
               .build()
       WorkManager.getInstance(applicationContext).enqueue(dailyWorkRequest)

       return Result.success()
   }
}