collectAsStateWithLifecycle
Perhatikan state ViewModel dengan selamat dalam Compose.
collectAsStateWithLifecycle ialah pelajaran Jetpack Compose Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Jetpack Compose Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Jetpack Compose Academy merangkumi sejumlah 4 pelajaran.
Memerhati Flow dalam Compose
ViewModel anda mendedahkan keadaan sebagai Flow, dan Composable anda perlu menukar aliran itu menjadi nilai yang boleh dibaca serta diberikan tindak balas oleh Compose.
Cara yang Menyedari Kitar Hayat
Gunakan collectAsStateWithLifecycle() untuk mengumpulkan StateFlow menjadi keadaan Compose sambil menghormati kitar hayat skrin. 🔋
val ui by vm.state.collectAsStateWithLifecycle()Mengapa Bukan collectAsState
collectAsState() biasa terus mengumpulkan data walaupun aplikasi berada di latar belakang, lalu membazirkan kerja. Versi yang menyedari kitar hayat akan menjedakannya.
Berhenti di Latar Belakang
Apabila skrin anda berhenti, pengumpulan turut berhenti; apabila skrin kembali ke latar depan, pengumpulan disambung semula, sekali gus menjimatkan bateri dan mengelakkan kemas kini yang tidak berguna.
Membaca Hasil
Panggilan itu mengembalikan State yang anda baca dengan by, lalu memberikan anda nilai biasa yang mencetuskan gubahan semula setiap kali flow menghasilkan nilai.
val ui by vm.state.collectAsStateWithLifecycle()
Text(ui.title)Tambah Kebergantungan
Pembantu ini terdapat dalam artifak masa jalan. Tambahkan lifecycle-runtime-compose supaya fungsi itu tersedia dalam Composable anda.
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.0")Memilih Keadaan Minimum
Secara lalai, pengumpulan aktif apabila sekurang-kurangnya STARTED. Anda boleh merendahkan ambang itu, tetapi STARTED ialah pilihan yang selamat dan disyorkan.
Serasi dengan StateFlow
Ia amat berguna dengan StateFlow, yang sentiasa menyimpan nilai semasa, supaya skrin anda mempunyai sesuatu untuk ditunjukkan sebaik sahaja ia muncul.
Buat Percabangan pada Keadaan
Selepas dikumpulkan, buat percabangan pada UiState untuk merender keadaan sedang dimuatkan, berjaya atau ralat, semuanya didorong oleh nilai terkini yang dipancarkan oleh ViewModel anda.
if (ui.isLoading) Spinner() else Content(ui.items)Lebih Selamat daripada Pengumpulan Manual
Anda tidak perlu lagi memulakan dan membatalkan pengumpulan secara manual. Pembantu ini mengikat kerja tersebut pada gubahan dan kitar hayat untuk anda. ✨
Lalai Moden
Untuk skrin Compose baharu, collectAsStateWithLifecycle() ialah cara yang disyorkan untuk memerhati keadaan ViewModel dengan selamat dan cekap.
Semakan Pantas
Semak sebab pengumpul yang menyedari kitar hayat lebih diutamakan.
Imbas Kembali
Perhatikan keadaan ViewModel dengan collectAsStateWithLifecycle(): ia mengumpulkan StateFlow menjadi keadaan Compose, menjedanya di latar belakang dan merupakan pilihan lalai moden.
Pelajari Kotlin dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “collectAsStateWithLifecycle” percuma?
Ya — teks penuh “collectAsStateWithLifecycle” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Jetpack Compose Academy, tingkat taraf kepada CoddyKit PRO. Kursus Jetpack Compose Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “collectAsStateWithLifecycle”?
Perhatikan state ViewModel dengan selamat dalam Compose. Anda berlatih Jetpack Compose Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Jetpack Compose Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Jetpack Compose Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “collectAsStateWithLifecycle” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Jetpack Compose Academy ini?
Ya. Setiap pelajaran Jetpack Compose Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mengapa ViewModel Kekal Merentas Putaran
- viewModel() dalam Composable
- Memodelkan Kelas Data UiState
- collectAsStateWithLifecycle