Android (Q): JobScheduler не вызывает onStartJob () сразу - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть служба, которая расширяет JobService.

override fun onStopJob(p0: JobParameters?): Boolean {
    return true
}

override fun onStartJob(params: JobParameters?): Boolean {
    Log.d(TAG,"onStartJob :: $params")
    if (params != null) {
        // Do some work.. 
        jobFinished(params, false)
    }
    return true
}
  • Существует код для публикации задания с использованием JobScheduler.

    val jobScheduler = context.getSystemService(JOB_SCHEDULER_SERVICE) as JobScheduler
    val componentName = ComponentName(context, AndroidAutoService::class.java)
    
    val jobId = UUID.randomUUID().hashCode()
    val jobInfo = JobInfo.Builder(jobId, componentName).setOverrideDeadline(0).build()
    Log.d(TAG,"jobInfo :: $jobInfo")
    jobScheduler.schedule(jobInfo)
    
  • Ожидаемое поведение , когда мы вызываем jobScheduler.schedule (jobInfo) , он должен немедленно вызвать метод onStartJob () .
  • Проблема: После вызова расписания (jobInfo) для запуска задания onStartJob () требуется некоторое время (от 8 до 10 секунд).
  • Это не происходит постоянно

Пожалуйста, есть идеи, почему я сталкиваюсь с этой проблемой? Спасибо за ваше предложение.

...