gpt4 book ai didi

java - 解锁手机时 Job Scheduler 在一秒钟内运行两次

转载 作者:行者123 更新时间:2023-11-30 10:23:14 25 4
gpt4 key购买 nike

我正在尝试定期将我的位置值从 Android 手机发送到服务器应用程序,并将时间段设置为 1 分钟。当我开始服务时,jobservice 工作正常,但几分钟后,当我解锁手机时,Jobservice 在 1 秒内发送了两个数据。我的代码有什么问题吗

MainActivity.java

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

ComponentName jobService = new ComponentName(getPackageName(),
ServiceClass.class.getName());
JobInfo.Builder jobInfo = new JobInfo.Builder(MY_JOB, jobService);
PersistableBundle bundle = new PersistableBundle();
jobInfo.setPeriodic(period*60*1000);
int jobId = jobScheduler.schedule(jobInfo.build());
if(jobId>0){
Toast.makeText(MainActivity.this,"Successfully scheduled job
",Toast.LENGTH_SHORT).show();
btstartservice.setEnabled(false);
btstopservice.setEnabled(true);
}else{
Toast.makeText(MainActivity.this,"Faild to start service
",Toast.LENGTH_SHORT).show();
}

ServiceClass.java

   public class ServiceClass extends JobService implements LocationListener{
public boolean onStartJob(JobParameters params) {
getLocation();
return false;
}

@Override
public boolean onStopJob(JobParameters params) {
Toast.makeText(getApplicationContext(),"Service
Stopped",Toast.LENGTH_SHORT).show();
return false;
}
}

最佳答案

如果您查看 JobInfo 代码,MIN_PERIOD_MILLIS设置为 15 分钟。任何低于此时间段的设置都将实际使用 15 分钟。

查看此 comment也在代码中:

Query the minimum interval allowed for periodic scheduled jobs. Attempting to declare a smaller period that this when scheduling a job will result in a job that is still periodic, but will run with this effective period.

您的间隔周期性任务将需要一些其他服务,可能警报管理器会为您工作。

关于java - 解锁手机时 Job Scheduler 在一秒钟内运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47152319/

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