2015-04-12 138 views
1

如何重新安排以setPeriodic()开始的JobScheduler,我想稍后使用用户输入更改计划程序时间。如何重新安排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());

回答

1

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

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

那么,我可以从当前JobScheduler开始另一个JobScheduler并取消上一个? –

+0

是的,你可以。或者你可以使用一个新的。这并不重要,因为您创建的JobScheduler实例实际上正在挂接到系统服务JOB_SCHEDULER_SERVICE中。所有的实例都会连接到这个。因此,只要你提供一个id(现有的工作),它会识别你想要正确取消的 – ucsunil

+0

如何检查jobScheduler特定的ID是否正在运行? –

1

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