JobService 可以在 运行 只有一次时立即 运行 吗?
can JobService run immediately when it runs only once?
JobService 可以在 运行 只有一次时立即 运行 吗?
我目前正在测试 JobService,
我使用以下代码
JobScheduler jobScheduler = getSystemService(JobScheduler.class);
jobScheduler.schedule(new JobInfo.Builder(1,
new ComponentName(getApplicationContext(), SyncJobLollipop.class))
.setMinimumLatency(1)
.setOverrideDeadline(1)
.build());
但它立即 运行s,这是因为我不使用定期吗?
还是可以直接运行?
我想用这个代替线程。
我可以 运行 完成后再次使用吗?
Can JobService run immediately when it runs only once?
当您使用 JobScheduler API 时,它会向您承诺,当条件完成时,它会 运行 您的 JobService,但不一定立即。尽管如果您的应用程序在前台(用户正在使用它),它会 运行 您的 JobService 更快。我看到用户从未使用过的应用程序对 运行 作业有很大延迟的情况(该作业只会执行一次)。
But it runs immediately, is this because I don't use periodically? Or it can run directly?
当作业被安排为周期性时,它的默认最短时间为 15 分钟到 运行(它不会将作业安排为周期性小于 15 分钟),而普通作业没有这个局限性。但这并不意味着作业会在满足条件后立即执行,正如我之前解释的那样。
And can I run it again just after it is finished?
您可以在完成后重新安排 JobService。我已经实现了它并且效果很好。但是如果你调度这个 JobService 很多,系统会延迟你的作业的执行。
周期性作业不需要重新安排,因为在预定的时间后作业将再次执行。
按照我的草稿解决方案:
class MyJobService extends JobService {
public boolean onStartJob(JobParameters params)
/* Here is run my task */
scheduleJob(); //
return false;
}
public static void scheduleJob() {
/* code to schedule this job service. */
}
}
JobService 可以在 运行 只有一次时立即 运行 吗?
我目前正在测试 JobService, 我使用以下代码
JobScheduler jobScheduler = getSystemService(JobScheduler.class);
jobScheduler.schedule(new JobInfo.Builder(1,
new ComponentName(getApplicationContext(), SyncJobLollipop.class))
.setMinimumLatency(1)
.setOverrideDeadline(1)
.build());
但它立即 运行s,这是因为我不使用定期吗? 还是可以直接运行? 我想用这个代替线程。
我可以 运行 完成后再次使用吗?
Can JobService run immediately when it runs only once?
当您使用 JobScheduler API 时,它会向您承诺,当条件完成时,它会 运行 您的 JobService,但不一定立即。尽管如果您的应用程序在前台(用户正在使用它),它会 运行 您的 JobService 更快。我看到用户从未使用过的应用程序对 运行 作业有很大延迟的情况(该作业只会执行一次)。
But it runs immediately, is this because I don't use periodically? Or it can run directly?
当作业被安排为周期性时,它的默认最短时间为 15 分钟到 运行(它不会将作业安排为周期性小于 15 分钟),而普通作业没有这个局限性。但这并不意味着作业会在满足条件后立即执行,正如我之前解释的那样。
And can I run it again just after it is finished?
您可以在完成后重新安排 JobService。我已经实现了它并且效果很好。但是如果你调度这个 JobService 很多,系统会延迟你的作业的执行。
周期性作业不需要重新安排,因为在预定的时间后作业将再次执行。
按照我的草稿解决方案:
class MyJobService extends JobService {
public boolean onStartJob(JobParameters params)
/* Here is run my task */
scheduleJob(); //
return false;
}
public static void scheduleJob() {
/* code to schedule this job service. */
}
}