이전 과정에서는 JobIntentService
클래스를 만드는 방법을 보았습니다. 이 과정에서는 JobIntentService
를 트리거하여 Intent
로 작업을 큐에 추가하여 작업을 실행하는 방법을 보여줍니다.
이 Intent
는 처리할 JobIntentService
의 데이터를 선택적으로 포함할 수 있습니다.
작업 요청을 만들어 JobIntentService에 전송
작업 요청을 만들어 JobIntentService
에 전송하려면 Intent
를 만들고
enqueueWork()
를 호출하여 실행되도록 큐에 추가합니다.
선택적으로 JobIntentService가 처리할 인텐트에 데이터를 인텐트 추가 항목 형식으로 추가할 수 있습니다. 인텐트 만들기에 관한 자세한 내용은 인텐트 및 인텐트 필터의 인텐트 빌드 섹션을 읽어보세요.
다음 코드 스니펫은 이 프로세스를 보여줍니다.
-
RSSPullService
라고 하는JobIntentService
의 새Intent
만들기
Kotlin
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = Intent().apply { putExtra("download_url", dataUrl) }
자바
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = new Intent(); serviceIntent.putExtra("download_url", dataUrl));
-
enqueueWork()
번으로 전화하기Kotlin
private const val RSS_JOB_ID = 1000 RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)
자바
// Starts the JobIntentService private static final int RSS_JOB_ID = 1000; RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
활동이나 프래그먼트의 어디에서나 작업 요청을 전송할 수 있습니다. 예를 들어 사용자 입력을 먼저 가져와야 하는 경우 버튼 클릭이나 유사한 동작에 응답하는 콜백에서 요청을 전송할 수 있습니다.
enqueueWork()
를 호출하면
JobIntentService
는
onHandleWork()
메서드에 정의된 작업을 실행한 다음 스스로 중지합니다.
다음 단계는 작업 요청의 결과를 원래 활동 또는 프래그먼트에 다시 보고하는 것입니다. 다음 과정에서는 BroadcastReceiver
로 이 작업을 실행하는 방법을 보여줍니다.