I am scheduling multiple jobs at once. I need to run multiple jobs one by one with delay between multiple jobs but some of the jobs runs in parallel. How can I schedule them so they run one after another with set delay. Following is the code used in onStart method.
public boolean onStartJob(final JobParameters jobParameters) {
new Thread() {
@Override
public void run() {
PersistableBundle persistableBundle = jobParameters.getExtras();
int delay = persistableBundle.getInt("delay");
Log.d("Time", new SimpleDateFormat("HH:mm:ss", Locale.US).format(new Date()));
if(delay > 0) {
try {
sleep(delay * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Log.d("EndTime", new SimpleDateFormat("HH:mm:ss", Locale.US).format(new Date()));
//Do Some work
jobFinished(jobParameters, false);
}
}.start();
return true;
}
Following is the debug log for test of 5 jobs.
D/Time: 16:43:21
D/Time: 16:43:22
D/Time: 16:43:24
D/EndTime: 16:43:30
D/EndTime: 16:43:31
D/Time: 16:43:31
D/Time: 16:43:31
D/EndTime: 16:43:33
D/EndTime: 16:43:40
D/EndTime: 16:43:40