gpt4 book ai didi

android - JobScheduler setPeriodic 永远不会被调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:22 60 4
gpt4 key购买 nike

我正在尝试使用 JobScheduler 每 3 秒安排一次作业。我已经准备好我的 Job.Builder,但是当我安排工作时,onStartJob() 仍然没有被调用。

我不确定我缺少什么请帮助我。JobBuilder:

ComponentName componentName = new ComponentName(this,JobSchedulerService.class);

JobInfo.Builder builder = new JobInfo.Builder(0,componentName)
.setPeriodic(5 * 1000);

JobScheduler jobScheduler = (JobScheduler) getBaseContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
int id = jobScheduler.schedule(builder.build());


Log.i("Service","ID is :"+id);

JobService 中,

public class JobSchedulerService extends JobService {

@Override
public boolean onStartJob(JobParameters jobParameters) {
Message message = new Message();
message.what = Utils.JOB_SCHEDULER_WHAT;
message.obj = jobParameters;
handler.sendMessage(message);
return true;
}

@Override
public boolean onStopJob(JobParameters jobParameters) {
return false;
}

private final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
JobParameters jobParameters = (JobParameters)msg.obj;
Log.i("Service:","ServiceID:"+jobParameters.getJobId());
}
};
}

请让我知道如何完成这项工作。

最佳答案

Job scheduler 的 setPeridic 值至少为 15 分钟,因此如果您在不到 15 分钟的时间内通过(如您的情况),jobScheduler 只会将您的周期值固定为 15 分钟。考虑等待 15 分钟或使用 setOverrideDeadline(long)。见https://catinean.com/2014/10/19/smart-background-tasks-with-jobscheduler/

关于android - JobScheduler setPeriodic 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283996/

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