gpt4 book ai didi

android - Job Scheduler 未在设定的时间间隔内运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:24 25 4
gpt4 key购买 nike

我正在尝试使用 android Job Scheduler API,我要做的就是让 Job Scheduler 每 5 秒运行一次。然而,当我运行它时,相应的服务每两分钟就会被触发一次。我有一个记录每次服务被点击的日志。我不确定为什么会这样。 Job Scheduler 能否有一个最小间隔时间。我的代码很简单...

JobInfo jobInfo = new JobInfo.Builder(1, new ComponentName(this, UpdateDatabaseService.class))
.setPeriodic(5000)
.build();

JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(jobInfo);

问题最初是在我尝试运行每日任务时出现的,但它会在当天多次触发该服务并且不会遵循时间指南。

让我知道你的想法。

最佳答案

我遇到了这个问题,在查看了一些博客和官方文档后,我意识到 JobScheduler 在 Android N(24 和 25)上有不同的行为。 JobScheduler 以至少 15 分钟的周期工作。

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public static void setJobScheduler(Context context){
Log.v(TAG, "Job Scheduler is starting");
JobScheduler jobScheduler = (JobScheduler)context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
ComponentName serviceName = new ComponentName(context, JobService.class);
JobInfo jobInfo;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setPeriodic(900000)
.build();
}else{
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setPeriodic(Constants.TIME_INTERVAL)
.build();
}
jobScheduler.schedule(jobInfo);
}

关于android - Job Scheduler 未在设定的时间间隔内运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492022/

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