2017-10-06 88 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的回答),但這個想法還不是很清楚,你可以幫助我理解它 –