collectAsStateWithLifecycle
Amati state ViewModel dengan aman di Compose.
collectAsStateWithLifecycle adalah pelajaran Jetpack Compose Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.
Mengamati Flow di Compose
ViewModel Anda mengekspos keadaan sebagai Flow, dan Composable Anda perlu mengubah aliran tersebut menjadi nilai yang dapat dibaca serta direspons oleh Compose.
Cara yang Memahami Siklus Hidup
Gunakan collectAsStateWithLifecycle() untuk mengumpulkan StateFlow menjadi keadaan Compose sambil menghormati siklus hidup layar. 🔋
val ui by vm.state.collectAsStateWithLifecycle()Mengapa Bukan collectAsState
collectAsState() biasa terus mengumpulkan data bahkan saat aplikasi berada di latar belakang, sehingga membuang pekerjaan. Versi yang memahami siklus hidup akan menjedanya.
Berhenti di Latar Belakang
Saat layar Anda berhenti, pengumpulan juga berhenti; saat layar kembali ke latar depan, pengumpulan dilanjutkan, sehingga menghemat baterai dan menghindari pembaruan yang tidak perlu.
Membaca Hasilnya
Panggilan tersebut mengembalikan State yang Anda baca dengan by, sehingga Anda memperoleh nilai biasa yang memicu rekomposisi setiap kali flow memancarkan nilai.
val ui by vm.state.collectAsStateWithLifecycle()
Text(ui.title)Menambahkan Dependensi
Pembantu ini berada dalam artefak runtime. Tambahkan lifecycle-runtime-compose agar fungsi tersebut tersedia di Composable Anda.
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.0")Memilih Keadaan Minimum
Secara default, pengumpulan aktif saat setidaknya berada pada STARTED. Anda dapat menurunkan ambangnya, tetapi STARTED adalah pilihan yang aman dan direkomendasikan.
Berpasangan dengan StateFlow
Fitur ini sangat cocok dengan StateFlow, yang selalu menyimpan nilai saat ini, sehingga layar Anda memiliki sesuatu untuk ditampilkan segera setelah muncul.
Membuat Percabangan Berdasarkan Keadaan
Setelah dikumpulkan, buat percabangan berdasarkan UiState untuk merender keadaan memuat, berhasil, atau error, semuanya digerakkan oleh emisi terbaru dari ViewModel Anda.
if (ui.isLoading) Spinner() else Content(ui.items)Lebih Aman daripada Pengumpulan Manual
Fitur ini membebaskan Anda dari keharusan memulai dan membatalkan pengumpulan secara manual. Pembantu tersebut mengaitkan pekerjaan dengan komposisi dan siklus hidup untuk Anda. ✨
Default Modern
Untuk layar Compose baru, collectAsStateWithLifecycle() adalah cara yang direkomendasikan untuk mengamati keadaan ViewModel dengan aman dan efisien.
Pemeriksaan Singkat
Periksa alasan pengumpul yang memahami siklus hidup lebih disukai.
Rangkuman
Amati keadaan ViewModel dengan collectAsStateWithLifecycle(): fungsi ini mengumpulkan StateFlow menjadi keadaan Compose, menjeda pengumpulan di latar belakang, dan merupakan default modern.
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 “collectAsStateWithLifecycle” gratis?
Ya — teks lengkap “collectAsStateWithLifecycle” 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 “collectAsStateWithLifecycle”?
Amati state ViewModel dengan aman di Compose. 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 4 dari 4.
Berapa lama pelajaran “collectAsStateWithLifecycle” 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
- Mengapa ViewModel Bertahan setelah Rotasi
- viewModel() dalam Composable
- Memodelkan Data Class UiState
- collectAsStateWithLifecycle