gpt4 book ai didi

android - JobService 只运行一次就可以立即运行吗?

转载 作者:行者123 更新时间:2023-11-29 16:31:26 25 4
gpt4 key购买 nike

JobService只运行一次就可以立即运行吗?

我目前正在测试 JobService,我使用以下代码

            JobScheduler jobScheduler = getSystemService(JobScheduler.class);
jobScheduler.schedule(new JobInfo.Builder(1,
new ComponentName(getApplicationContext(), SyncJobLollipop.class))
.setMinimumLatency(1)
.setOverrideDeadline(1)
.build());

但它立即运行,这是因为我没有使用定期吗?还是可以直接运行?我想用这个代替 Thread。

我可以在完成后再次运行它吗?

最佳答案

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. */
}
}

关于android - JobService 只运行一次就可以立即运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54878033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com