Mengirimkan permintaan kerja ke layanan latar belakang

Tutorial sebelumnya menunjukkan cara membuat class JobIntentService. Tutorial ini menunjukkan cara memicu JobIntentService untuk menjalankan operasi dengan mengantrekan pekerjaan dengan Intent. Intent ini secara opsional bisa berisi data yang akan diproses oleh JobIntentService.

Membuat dan mengirim permintaan pekerjaan ke JobIntentService

Untuk membuat permintaan pekerjaan dan mengirimnya ke JobIntentService, buat Intent dan antrekan untuk dieksekusi dengan memanggil enqueueWork(). Secara opsional Anda dapat menambahkan data ke intent (dalam bentuk tambahan intent) untuk diproses oleh JobIntentService. Untuk informasi membuat intent lebih lanjut, baca bagian Membuat intent di Intent dan Filter Intent

Cuplikan kode berikut menunjukkan proses ini:

  1. Buat Intent baru untuk JobIntentService bernama RSSPullService.

    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)
        }
        

    Java

        /*
         * 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. Panggil enqueueWork()

    Kotlin

        private const val RSS_JOB_ID = 1000
        RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)
        

    Java

        // Starts the JobIntentService
        private static final int RSS_JOB_ID = 1000;
        RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
        

Perlu diketahui bahwa Anda dapat mengirim permintaan kerja dari mana saja dalam Aktivitas atau Fragmen. Misalnya, jika Anda perlu mendapatkan input pengguna terlebih dahulu, Anda dapat mengirim permintaan dari callback yang merespons klik tombol atau gestur serupa.

Setelah Anda memanggil enqueueWork(), JobIntentService akan melakukan pekerjaan yang ditentukan dalam metode onHandleWork(), lalu menghentikannya sendiri.

Langkah selanjutnya adalah melaporkan hasil permintaan pekerjaan ke Aktivitas atau Fragmen asal. Tutorial berikutnya akan menunjukkan cara melakukan hal ini dengan BroadcastReceiver.