我正在安排多个工作。我需要逐个运行多个作业,多个作业之间有延迟,但有些作业并行运行。我如何安排它们,以便它们以设定的延迟一个接一个地运行。以下是onStart方法中使用的代码。
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;
}
以下是用于测试5个作业的调试日志。
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