Android 在特定时间运行我的后台服务,并定期使用JobScheduler
我想使用JobScheduler从晚上11:45开始每24小时运行一次后台服务以获取新数据,问题是我找不到如何告诉JobScheduler我的服务应该在晚上11:45开始运行Android 在特定时间运行我的后台服务,并定期使用JobScheduler,android,android-jobscheduler,Android,Android Jobscheduler,我想使用JobScheduler从晚上11:45开始每24小时运行一次后台服务以获取新数据,问题是我找不到如何告诉JobScheduler我的服务应该在晚上11:45开始运行 private void constructJob() { JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, new ComponentName(this, TestService.class)); builder.setPeriodic(24*6
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功能的优点中获益,如:
*合并作业以减少电池消耗。
*由于自动处理网络的不可靠性,因此更容易处理上传。
*使应用程序重新启动
我找不到如何告诉作业调度程序我的服务应该在晚上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();
}
这是因为这是不受支持的<代码>作业调度器周期性作业的设计是不精确的,以最大限度地节省能源。感谢您的回复,在我寻找解决方案的过程中,我发现了一些解决方案(Ansh1234的回复),但想法仍然不是很清楚,请您帮助我理解它