2017-10-06 33 views
0

我想运行一个后台服务以每24小时从下午11:45开始使用JobScheduler提取新数据,问题是我无法找到如何说明jobSheduler,我的服务应该在11:45 PM开始运行?在特定的时间运行我的后台服务,并定期使用JobScheduler

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功能advantges受益: *使电池消耗减少合并工作。 *使处理上传更容易,因为它自动处理网络的不可靠性。 *应用程序重新启动

回答

0

我找不到如何告诉jobSheduler我的服务应该在11:45 PM开始运行?

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

+0

感谢您的回复,在我寻找解决方案期间,我发现这个讨论[链接](https://github.com/firebase/firebase-jobdispatcher-android/issues/52)某种解决方法来获取(Ansh1234的回答),但这个想法还不是很清楚,你可以帮助我理解它 –

相关问题