2017-08-28 51 views
1

我的應用程序的時間表有60秒的週期性間隔的jobscheduler:Job Scheduler的時間間隔被稱爲太罕見

val service = ComponentName(packageName, MonitorService::class.java.name) 
val job = JobInfo.Builder(JOB_ID, service) 
      .setPeriodic(interval) // interval is 60*1000 
      .setPersisted(true) 
      .setRequiresCharging(false) 
      .build() 
jobScheduler.schedule(job) 

我知道的一個事實,即Android操作系統優化了作業調度,爲此它會從來沒有準確的時間表,但像2〜3分鐘後。我在自己的設備上驗證了這一行爲(HTC One M8與Android 6.0)。

在很多(各種)其他設備上,間隔爲,多得多更少見(如每小時一次/兩次)。

我該如何解決這個問題? Job Scheduler可能不是我用例的正確API?

回答

4

JobScheduler最新版本在Android的新版本上爲15分鐘。 See getMinPeriodMillis()

就您的「使用案例」而言,每分鐘做任何事情對於電池壽命都是可怕的。用戶已經非常大聲地抱怨,所以谷歌繼續採取措施阻止應用程序這樣做。例如,Android 6.0以上的打盹模式和應用程序待機會導致您的作業很少運行,每小時一次或更少。