상황 :
(1) onStartJob() false를 반환합니다.
(2) onStartJob()이 false를 반환 한 후 시스템이 취소 요청을 수신했습니다 (예 : onStartJob()가 돌아온 후 jobScheduler.cancelAll()가 호출 됨)
(3) jobFinished (params, false)를 호출합니다. 곧바로 onStartJob()이 true를 반환합니다.
(4) onStartJob()이 true를 반환하고 요구 사항이 더 이상 충족되지 않습니다. (5) onStartJob() 후에 jobScheduler.cancelAll()을 호출하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 마음에
상태 유지 : 시스템은 당신이() jobFinished를 호출 할 수있는 기회를 가졌다도 전에 이 작업의 실행을 중지해야 함을 확인하는 경우
onStopJob()가 호출된다.
설명 :
당신이 작업이 onStartJob에서 false를 반환하여 수행 한 해당 시스템을 말할 경우 (1) (2) (3) 시스템에서는 작업 onStopJob()를 호출하지 않습니다() 또는 호출 jobFinished(), 시스템이 할 필요가 없기 때문에.
(4) 시스템은 당신을 위해 onStopJob()를 호출하지만 요구 사항은 어쩌면 (샤오 미의 4C에 테스트) 1 분, 충족되지 후 시간이 오래 걸릴 것입니다.
(5) 시스템은 당신을 위해() onStopJob 호출합니다.
귀하의 질문 :
(1)how does the system know when my job stops running unless it calls onStopJob?
당신은 jobFinished()를 호출하거나 시스템이 당신의 작업을 완료 가지고 있음을 알려 onStartJob()에서 false를 반환 할 수 있습니다.
(2)Is it guaranteed to be called?
상황에 따라 다릅니다. 따라서 onStopJob()을 사용하여 작업이 완료되었는지 판단하는 것이 옳지 않습니다.