android jobscheduler 예제

종종 onStartJob()은 단순히 다른 것을 시작하기 때문에 작을 것입니다. 예를 들어 Muzei 앱에서는 기본적으로 AsyncTask를 초기화하는 것입니다. (해당 작업의 모양을 확인하려면 GitHub에서 확인하시기 바랍니다.) 구글 샘플 / 안드로이드 – JobScheduler에서 새로운 릴리스의 알림을 원하십니까? 저작권 © 2012-2019 vogella GmbH. 소프트웨어 예제의 무료 사용은 이클립스 공공 라이센스 2.0의 조건에 따라 부여됩니다. 이 튜토리얼은 크리에이티브 커먼즈 저작자 표시-비상업적-공유3.0 독일 라이선스에 따라 게시됩니다. 이 작업이 성공적으로 예약된 경우 일정(android.app.job.jobInfo)에서 반환됩니다. 작업 서비스는 Android 구성 요소이므로 주 스레드에서 실행됩니다. 따라서 작업 서비스 콜백 메서드에 있는 작업을 백그라운드 스레드에서 실행해야 합니다. 다음은 jobService – TestService 의 예제의 전체 예입니다.

사용자 지정 SyncAdapter 또는 경보 관리자와 비교하여 JobScheduler는 작업의 일괄 일정을 지원합니다. Android 시스템은 작업을 결합하여 배터리 소모를 줄일 수 있습니다. JobManager를 사용하면 네트워크의 안정성이 자동으로 향상될 때 업로드를 더 쉽게 처리할 수 있습니다. 또한 응용 프로그램 다시 시작을 생존. 다음은 이 작업 스케줄러를 사용하는 경우의 예입니다. 예를 들어, 예를 들어, 작업이 네트워크 연결이 있을 때, 장치가 연결되어 있을 때, 그리고 적어도 12시간(43200000밀리초)마다 반복되도록 작업(TaskService에 의해 정의됨)을 시작하도록 지정하는 방법입니다. 빌더에는 JobService 또는 «작업» 이름(이름은 위의 예제 코드에서 TestService임)과 작업 ID가 필요합니다. 작업 ID(위의 예에서 1)를 사용하여 JobScheduler를 통해 작업을 취소할 수 있습니다.

또한 작업이 완료되면(완료 또는 취소) `jobFinished` 메서드를 호출할 책임이 있습니다. `jobFinished` 메서드는 Android에 작업이 완료되었다는 것을 알려주고 앱에 대한 웨이크잠금을 해제할 수 있도록 합니다. `jobFinished` 메서드를 호출하지 않으면 앱이 사용자의 배터리를 소모할 수 있습니다! 다음은 새 스레드에서 10초 동안 `작업`을 수행하는 간단한 JobService의 예입니다: onStopJob() 메서드는 작업이 실행중일 때 시스템에서 호출되고 JobInfo를 통해 작업과 관련된 기준 또는 매개 변수가 더 이상 적용되지 않음을 감지합니다. t는 작업을 중지해야합니다. 예를 들어 JobInfo에서 작업을 실행하려면 네트워크 액세스 권한이 있어야 한다고 지정하면 네트워크 액세스를 더 이상 사용할 수 없을 때 onStopJob() 호출됩니다. 이 메서드는 기본/UI 스레드에서도 실행됩니다. onStopJob () 메서드는 또한 부울을 반환하여 조건이 다시 맞을 때 작업을 다시 예약 / 다시 시도할지 여부를 나타냅니다. 이러한 제약 조건을 결합할 수 있습니다. 예를 들어 장치가 계량되지 않은 네트워크에 연결될 때마다 20분마다 작업을 예약할 수 있습니다.

기한은 작업이 항상 예약되어 만료되는 경우 하드 제약 조건입니다. 지정된 작업의 작업은 어디에 있습니까? 수행할 작업 또는 작업을 포함하는 개체는 JobService의 인스턴스입니다.