Jetpack Compose Academy · Pelajaran

rememberCoroutineScope untuk Event

Luncurkan coroutine dari callback.

Pelajaran 2 dari 413 langkah

rememberCoroutineScope untuk Event adalah pelajaran Jetpack Compose 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 Jetpack Compose Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Jetpack Compose Academy mencakup 4 pelajaran total.

Sebagian Pekerjaan Dimulai dari Ketukan

LaunchedEffect berjalan saat composition berlangsung. Namun, menggulir daftar atau menampilkan snackbar seharusnya dimulai dari callback seperti onClick, bukan saat masuk.

Kenali rememberCoroutineScope

rememberCoroutineScope memberi Anda CoroutineScope yang terikat pada composition. Anda dapat menyimpannya dan menjalankannya dari penangan kejadian.

val scope = rememberCoroutineScope()

Jalankan dari onClick

Di dalam lambda ketukan, panggil scope.launch untuk memulai pekerjaan suspend. Body itu sendiri tetap bebas dari coroutine.

Button(onClick = {
    scope.launch { listState.animateScrollToItem(0) }
}) { Text("Top") }

Mengapa Bukan LaunchedEffect di Sini

LaunchedEffect dijalankan saat composition, sehingga tidak dapat merespons event pengguna. Scope memungkinkan Anda menentukan kapan harus menjalankannya.

Terikat pada Lokasi Panggilan

Scope secara otomatis cancelled saat Composable yang membuatnya keluar dari composition. Pekerjaan yang tertunda dibersihkan untuk Anda.

Cocok untuk Snackbar

Menampilkan snackbar adalah panggilan suspend, sehingga harus dijalankan dalam coroutine. Picu dari tombol menggunakan scope yang Anda ingat.

scope.launch {
    snackbarHostState.showSnackbar("Saved")
}

Menggulir Sesuai Permintaan

Pengguliran terprogram seperti animateScrollToItem juga bersifat suspend. Jalankan dari scope saat pengguna mengetuk tombol lompat.

scope.launch { listState.animateScrollToItem(index) }

Pertahankan Referensi Tetap Stabil

Karena Anda memanggil remember, scope yang sama bertahan selama recomposition. Anda tidak akan membuat scope baru secara tidak sengaja pada setiap gambar ulang.

Gabungkan Beberapa Panggilan

Satu blok peluncuran dapat mengurutkan beberapa langkah suspend. Langkah-langkah tersebut berjalan berurutan dalam coroutine yang sama, sehingga logika kejadian tetap mudah dibaca.

scope.launch {
    drawerState.close()
    navController.navigate("home")
}

Jangan Menangkapnya dalam Efek

Untuk pekerjaan yang dipicu composition, pilih LaunchedEffect. Gunakan rememberCoroutineScope untuk peluncuran yang dipicu pengguna atau callback lainnya.

Contoh Tombol Simpan

Baca state, jalankan penyimpanan suspend, lalu tampilkan umpan balik, semuanya dalam satu peluncuran yang dipicu oleh ketukan. scope yang diingat mengikatnya ke layar.

onClick = {
    scope.launch {
        repo.save(form)
        snackbar.showSnackbar("Done")
    }
}

Pemeriksaan Singkat

Pikirkan di mana setiap pembantu coroutine seharusnya digunakan.

Rangkuman: rememberCoroutineScope

Bagus! Gunakan rememberCoroutineScope untuk menjalankan pekerjaan yang ditangguhkan dari callback seperti onClick. Cakupannya adalah composition dan coroutine akan dibatalkan otomatis saat Composable keluar. ✨

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “rememberCoroutineScope untuk Event” gratis?

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

Apa yang akan aku pelajari di “rememberCoroutineScope untuk Event”?

Luncurkan coroutine dari callback. Kamu berlatih Jetpack Compose 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 Jetpack Compose Academy?

Tidak diperlukan pengalaman sebelumnya. Jetpack Compose 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 “rememberCoroutineScope untuk Event” 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 Jetpack Compose Academy ini?

Ya. Setiap pelajaran Jetpack Compose 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. LaunchedEffect untuk Coroutine
  2. rememberCoroutineScope untuk Event
  3. DisposableEffect & Pembersihan
  4. derivedStateOf & snapshotFlow
← Kembali ke Jetpack Compose Academy