2015-04-12 52 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。系統將更新作業。