【问题标题】:Job Scheduler running two times within a second when unlocking phone解锁手机时,作业计划程序在一秒钟内运行两次
【发布时间】:2017-11-08 08:51:40
【问题描述】:

我正在尝试定期将我的位置值从 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;
     }
}

【问题讨论】:

    标签: java android android-jobscheduler


    【解决方案1】:

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

    在代码中也看到这个comment

    查询定期计划作业允许的最小间隔。 尝试在安排作业时声明一个更小的时间段 将产生一个仍然是周期性的作业,但会以此运行 有效期。

    按您的时间间隔重复执行的任务将需要其他服务,警报管理器可能会为您工作。

    【讨论】:

    • 我首先尝试了警报管理器,但效果不佳。我还阅读了 Alarm Manager 和 JobScheduler 之间的区别,我认为 JobScheduler 对周期性任务很有效。
    • 我同意,如果你的周期性任务不需要
    • 关于stackoverflow.com/questions/39641278/…
    • 我尝试将周期间隔设置为 20 分钟,但解锁手机时发生了同样的事情。
    猜你喜欢
    • 2016-04-24
    • 2018-02-18
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多