Piw*_*iwo 1 android kotlin android-jobscheduler
我的应用程序安排JobScheduler,周期间隔为60秒:
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)
Run Code Online (Sandbox Code Playgroud)
我知道Android操作系统优化了作业调度程序的事实,因此它永远不会完全安排,但需要2~3分钟后.我在自己的设备上验证了这种行为(HTC One M8 with Android 6.0).
在许多(各种)的其它设备在该间隔是多少更不频繁(如一次/两次每小时仅).
我该如何解决这个问题?Job Scheduler可能不是我的用例的正确API吗?
JobScheduler在较新版本的Android上,最短时间为15分钟.见getMinPeriodMillis().
就你的"用例"而言,每分钟做任何事都对电池寿命来说太可怕了.用户对此非常抱怨,因此Google继续采取措施阻止应用程序执行此操作.例如,打盹模式和待机应用在Android 6.0以上版本将导致您的作业极少运行,一小时一次或更少的数量级上.