Dasar-Dasar Coroutine dan Cakupan
Jalankan coroutine dalam cakupan yang tepat.
Dasar-Dasar Coroutine dan Cakupan adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Apa Itu Coroutine?
Coroutine memungkinkan Anda menulis kode asinkron dan non-pemblokiran dengan gaya berurutan. Coroutine merupakan jawaban Kotlin untuk callback dan thread dalam tugas seperti I/O jaringan dan basis data.
Fungsi suspend
Fungsi yang ditandai suspend dapat menjeda tanpa memblokir thread, lalu dilanjutkan nanti. Fungsi ini hanya dapat dipanggil dari coroutine atau fungsi suspend lainnya.
suspend fun fetchUser(): User {
delay(1000) // non-blocking pause
return User(1, "Ada", "ada@x.com")
}Menjeda vs Memblokir
delay menjeda coroutine, tetapi membebaskan thread untuk pekerjaan lain. Thread.sleep memblokir seluruh thread. Coroutine mengutamakan penjedaan agar tetap efisien.Menjalankan Coroutine
Mulai coroutine dengan launch pada CoroutineScope. Coroutine berjalan secara bersamaan dan tidak mengembalikan hasil.
scope.launch {
val user = fetchUser()
println(user.name)
}Mendapatkan Hasil dengan async
Gunakan async saat Anda memerlukan nilai hasil. Fungsi ini mengembalikan Deferred yang Anda tunggu dengan await.
val deferred = scope.async { fetchUser() }
val user = deferred.await()Apa Itu CoroutineScope?
Ruang lingkup menentukan masa hidup coroutine yang dijalankan di dalamnya. Batalkan ruang lingkup tersebut, dan semua coroutine di dalamnya ikut dibatalkan. Inilah yang disebut konkurensi terstruktur.
Konkurensi Terstruktur
Karena coroutine hidup di dalam suatu ruang lingkup, coroutine tidak dapat secara tidak sengaja hidup lebih lama darinya. Hal ini mencegah kebocoran: ketika layar ditutup, ruang lingkupnya membatalkan coroutine, dan pekerjaannya berhenti.
Pembatalan
Membatalkan ruang lingkup atau pekerjaan akan melempar CancellationException pada titik penjedaan berikutnya, sehingga coroutine berhenti dengan baik.
val job = scope.launch { /* work */ }
job.cancel() // stops it cooperativelyPembatalan Kooperatif
Coroutine harus bekerja sama: perulangan CPU yang panjang sebaiknya memeriksa isActive atau memanggil fungsi suspend agar pembatalan dapat berlaku.
while (isActive) {
// do a chunk of work
}Pengecualian dalam Coroutine
Pengecualian yang tidak tertangani dalam launch diteruskan ke ruang lingkup dan membatalkan coroutine saudaranya (kecuali jika menggunakan SupervisorJob). Tangani kesalahan dengan try/catch atau CoroutineExceptionHandler.
Mengapa Ruang Lingkup Penting di Android
Android menyediakan ruang lingkup siap pakai yang terikat pada siklus hidup komponen—seperti viewModelScope dan lifecycleScope—sehingga coroutine Anda dibatalkan secara otomatis pada waktu yang tepat. Itulah topik pelajaran berikutnya.
Pemeriksaan Singkat
Uji pemahaman Anda tentang ruang lingkup coroutine.
Rangkuman
Anda telah mempelajari:
- Fungsi
suspendmenjeda tanpa memblokir. launchmemulai pekerjaan tanpa menunggu hasil;asyncmengembalikan hasil.- CoroutineScope membatasi masa hidup coroutine (konkurensi terstruktur).
- Pembatalan berlangsung secara kooperatif.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar Coroutine dan Cakupan” gratis?
Ya — teks lengkap “Dasar-Dasar Coroutine dan Cakupan” 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 “Dasar-Dasar Coroutine dan Cakupan”?
Jalankan coroutine dalam cakupan yang tepat. 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 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar Coroutine dan Cakupan” 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
- Dasar-Dasar Coroutine dan Cakupan
- viewModelScope dan Dispatcher
- Dasar-Dasar Kotlin Flow
- StateFlow dan SharedFlow