Jetpack Compose Academy · Pelajaran

collectAsStateWithLifecycle

Amati state ViewModel dengan aman di Compose.

Pelajaran 4 dari 413 langkah

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.

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 “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

  1. Mengapa ViewModel Bertahan setelah Rotasi
  2. viewModel() dalam Composable
  3. Memodelkan Data Class UiState
  4. collectAsStateWithLifecycle
← Kembali ke Jetpack Compose Academy