백그라운드 서비스에 작업 요청 보내기

이전 강의에서는 맞춤 인벤토리 크기를 JobIntentService 클래스 이 Cloud Shell에서 JobIntentService: 다음을 기준으로 작업을 실행합니다. Intent로 작업을 큐에 추가하는 중입니다. 이 Intent에서 수행할 수 있는 작업 선택적으로 JobIntentService를 눌러 처리합니다.

작업 요청을 만들어 JobIntentService에 전송

작업 요청을 만들어 JobIntentService님, Intent를 만들어 큐에 추가합니다. 를 호출하여 enqueueWork()을 클릭합니다. 선택적으로 JobIntentService를 사용할 수 있습니다. 인텐트 만들기에 대한 자세한 내용은 인텐트 및 인텐트 필터의 인텐트 섹션

다음 코드 스니펫은 이 프로세스를 보여줍니다.

  1. 다음에 대한 새 Intent를 만듭니다. <ph type="x-smartling-placeholder"></ph> JobIntentServiceRSSPullService를 호출했습니다.

    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));
    
  2. (으)로 전화걸기 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() 메서드를 호출한 다음 자체적으로 중지합니다.

다음 단계는 작업 요청의 결과를 원래 활동에 다시 보고하는 것입니다. 또는 Fragment입니다. 다음 강의에서는 BroadcastReceiver