0Pricing
Android Academy · Pelajaran

Membuat Worker

Definisikan pekerjaan latar belakang dalam Worker.

Membuat Worker adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.

Membuat Worker

Unit pekerjaan latar belakang di WorkManager adalah Worker. Anda menentukan tugas dengan membuat subkelas dari kelas dasar worker dan mengganti metode kerjanya.

CoroutineWorker

Untuk Kotlin, perluas CoroutineWorker. doWork() adalah fungsi suspend, sehingga Anda dapat memanggil fungsi suspend lainnya dan berjalan secara alami pada dispatcher latar belakang.

class UploadWorker(
    context: Context,
    params: WorkerParameters
) : CoroutineWorker(context, params) {
    override suspend fun doWork(): Result {
        // background work here
        return Result.success()
    }
}

Konstruktor

Setiap worker menerima Context dan WorkerParameters dalam konstruktornya, lalu meneruskannya ke kelas super. WorkManager membuat instance worker untuk Anda; Anda tidak pernah memanggil konstruktor secara langsung.

doWork Mengembalikan Result

doWork() harus mengembalikan Result yang menjelaskan hasilnya. Ada tiga kemungkinan.

  • Result.success()
  • Result.retry()
  • Result.failure()

Result.success

Kembalikan Result.success() ketika pekerjaan selesai. Pekerjaan tersebut dihapus dari antrean. Anda dapat menyertakan data keluaran untuk diteruskan ke pekerjaan berantai.

override suspend fun doWork(): Result {
    uploadLogs()
    return Result.success()
}

Result.retry

Kembalikan Result.retry() untuk kegagalan sementara, seperti kesalahan jaringan sementara. WorkManager menjalankan worker lagi nanti sesuai dengan kebijakan penundaan.

override suspend fun doWork(): Result {
    return try {
        syncData()
        Result.success()
    } catch (e: IOException) {
        Result.retry()
    }
}

Result.failure

Kembalikan Result.failure() untuk kegagalan permanen yang tidak dapat diperbaiki dengan mencoba lagi, seperti input yang tidak valid. Pekerjaan berhenti dan pekerjaan berantai yang bergantung padanya tidak akan berjalan.

Membaca Data Input

Anda meneruskan input kecil melalui Data saat memasukkannya ke antrean, lalu membacanya dengan inputData di dalam worker. Jaga agar ukurannya tetap kecil; ini bukan untuk muatan data besar.

override suspend fun doWork(): Result {
    val userId = inputData.getString("user_id") ?: return Result.failure()
    sync(userId)
    return Result.success()
}

Mengembalikan Data Output

Worker dapat mengembalikan Data dalam hasilnya, yang diterima worker berantai sebagai inputnya. Dengan cara ini, Anda meneruskan hasil antarlangkah.

val output = workDataOf("count" to 42)
return Result.success(output)

Gunakan Dispatcher yang Tepat

CoroutineWorker menjalankan doWork() pada Dispatchers.Default secara bawaan. Untuk I/O yang memblokir, beralihlah dengan withContext(Dispatchers.IO) agar kumpulan thread bawaan tidak kehabisan thread.

override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
    readAndUploadFile()
    Result.success()
}

Buat Worker Mandiri

Worker dapat berjalan jauh setelah dijadwalkan, dalam proses baru. Jangan bergantung pada keadaan aplikasi di memori; teruskan hal yang diperlukan melalui data input atau baca dari penyimpanan permanen.

Pemeriksaan Singkat

Uji pemahaman Anda tentang pembuatan Worker.

Ringkasan

Anda telah membuat Worker:

  • Perluas CoroutineWorker dan ganti doWork() yang bersifat suspend
  • Kembalikan Result.success(), Result.retry(), atau Result.failure()
  • Baca inputData dan kembalikan Data keluaran
  • Gunakan Dispatchers.IO untuk pekerjaan yang memblokir; buat worker tetap mandiri

Berikutnya: batasan dan penjadwalan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Membuat Worker” gratis?

Ya — teks lengkap “Membuat Worker” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Membuat Worker”?

Definisikan pekerjaan latar belakang dalam Worker. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Android Academy?

Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Membuat Worker” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kapan Menggunakan WorkManager
  2. Membuat Worker
  3. Batasan dan Penjadwalan
  4. Pekerjaan Berkala dan Berantai
← Kembali ke Android Academy