如何重新安排 JobScheduler?

How to reschedule JobScheduler?

如何重新安排我从 setPeriodic() 开始的 JobScheduler,我想稍后通过用户输入更改调度程序时间。

JobInfo.Builder builder =
    new JobInfo.Builder(JOB_ID, new ComponentName(this, MyJobScheduler.class));
builder
   .setPeriodic(15000)
   .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
   .setPersisted(true);
jobScheduler.schedule(builder.build());

目前没有重新安排工作的选项。您可以做的是调用 cancel() 方法来取消具有给定作业 ID 的作业并安排新作业。所以它看起来像:

jobScheduler.cancel(JOB_ID);
// Construct a new JobInfo.Builder
jobScheduler.schedule(builder.build());

以后如果想改参数,完全按照你写的来。但是,您必须使用完全相同的作业 ID。系统将更新作业。