我想运行后台服务,使用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功能的优势,例如: *结合工作,以减少电池消耗。 *使处理上传更容易,因为它自动处理网络的不可靠性。 *幸存应用程序重启
答案 0 :(得分:1)
我无法告诉jobSheduler我的服务应该在晚上11:45开始运行?
那是因为不支持。 JobScheduler
定期工作被设计为不精确,以最大限度地节省电力。