jobscheduler 예제


종종 onStartJob()은 단순히 다른 것을 시작하기 때문에 작을 것입니다. 예를 들어 Muzei 앱에서는 기본적으로 AsyncTask를 초기화하는 것입니다. (해당 작업의 모양을 확인하려면 GitHub에서 확인하시기 바랍니다.) onStopJob () 메서드는 작업이 실행 될 때 시스템에 의해 호출 되 고 JobInfo를 통해 작업과 관련 된 기준 또는 매개 변수를 감지 하 고 작업을 중지 해야 합니다. 예를 들어 JobInfo에서 작업을 실행하려면 네트워크 액세스 권한이 있어야 한다고 지정하면 네트워크 액세스를 더 이상 사용할 수 없을 때 onStopJob() 호출됩니다. 이 메서드는 기본/UI 스레드에서도 실행됩니다. onStopJob () 메서드는 또한 부울을 반환하여 조건이 다시 맞을 때 작업을 다시 예약 / 다시 시도할지 여부를 나타냅니다. 저작권 © 2012-2019 vogella GmbH. 소프트웨어 예제의 무료 사용은 이클립스 공공 라이센스 2.0의 조건에 따라 부여됩니다. 이 튜토리얼은 크리에이티브 커먼즈 저작자 표시-비상업적-공유3.0 독일 라이선스에 따라 게시됩니다. 다음은 jobService – TestService 의 예제의 전체 예입니다. JobInfo 개체는 수행하려는 작업및 실행 조건(시간, 전원 가용성 등)에 대한 모든 정보를 캡슐화합니다.

JobInfo는 실제 작업 또는 작업 자체가 아닙니다. 수행할 실제 작업은 JobService(예: 위의 TestService)에 정의되어 있습니다. JobInfo는 작업을 실행할 시기에 대한 매개 변수 또는 기준을 나타냅니다. 예를 들어 JobInfo 개체에는 장치가 연결되어 있고 WIFI 연결이 있을 때 큰 다운로드 작업이 실행되도록 지정해야 합니다. 또한 작업이 완료되면(완료 또는 취소) `jobFinished` 메서드를 호출할 책임이 있습니다. `jobFinished` 메서드는 Android에 작업이 완료되었다는 것을 알려주고 앱에 대한 웨이크잠금을 해제할 수 있도록 합니다. `jobFinished` 메서드를 호출하지 않으면 앱이 사용자의 배터리를 소모할 수 있습니다! 다음은 새 스레드에서 10초 동안 `작업`을 수행하는 간단한 JobService의 예입니다. 예를 들어, 예를 들어, 작업이 네트워크 연결이 있을 때, 장치가 연결되어 있을 때, 그리고 적어도 12시간(43200000밀리초)마다 반복되도록 작업(TaskService에 의해 정의됨)을 시작하도록 지정하는 방법입니다. 확실히 해야 할 조각이 많이 있으며, 언제 무엇을 시작해야 하는지, 어떤 이유로 실패할 경우 어떻게 되는지 신중하게 생각해야 합니다.

그러나 전반적으로 JobScheduler는 작업하기 쉽도록 설계되었습니다.