在特定时间运行我的后台服务,并定期使用JobScheduler

时间:2017-10-06 15:31:28

标签: android android-jobscheduler

我想运行后台服务,使用JobScheduler从晚上11:45开始每24小时获取一次新数据,问题是我无法告诉jobSheduler我的服务应该从11开始运行:下午45点?

 private void constructJob() {
    JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, new ComponentName(this, TestService.class));
    builder.setPeriodic(24*60*60*1000) //24 hours * 60 min * 60 sec * 1000
    .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
            .setPersisted(true)
            .build();

}

PS:我避免使用AlarmManager,我希望受益于jobScheduler API功能的优势,例如: *结合工作,以减少电池消耗。 *使处理上传更容易,因为它自动处理网络的不可靠性。 *幸存应用程序重启

1 个答案:

答案 0 :(得分:1)

  

我无法告诉jobSheduler我的服务应该在晚上11:45开始运行?

那是因为不支持。 JobScheduler定期工作被设计为不精确,以最大限度地节省电力。