如何逐个使用JobScheduler运行多个作业?

时间:2018-03-29 11:43:15

标签: java android android-jobscheduler

我正在安排多个工作。我需要逐个运行多个作业,多个作业之间有延迟,但有些作业并行运行。我如何安排它们,以便它们以设定的延迟一个接一个地运行。以下是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

0 个答案:

没有答案