Mengapa ViewModel Bertahan setelah Rotasi
Pertahankan state selama perubahan konfigurasi.
Mengapa ViewModel Bertahan setelah Rotasi adalah pelajaran Jetpack Compose 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 Jetpack Compose Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Jetpack Compose Academy mencakup 4 pelajaran total.
Masalah Rotasi
Putar layar dan Android akan menghancurkan Activity Anda, menghapus state apa pun yang tersimpan di dalamnya. Penghitung, teks, dan posisi gulir Anda semuanya akan hilang. 😵
Perubahan Konfigurasi
Rotasi adalah salah satu dari banyak perubahan konfigurasi: pergantian tema, perubahan lokal, dan pengubahan ukuran jendela semuanya membuat ulang layar Anda dengan cara yang sama.
Memperkenalkan ViewModel
ViewModel adalah class yang dibuat untuk menyimpan state UI yang bertahan lebih lama daripada Activity yang dilayaninya, sehingga rotasi tidak lagi membuang data Anda.
class CounterViewModel : ViewModel() {
var count = 0
}Terikat pada Layar, Bukan Activity
ViewModel memiliki scope pada pemilik siklus hidup layar, sehingga instance yang sama diberikan kembali kepada Activity yang dibuat ulang, bukan instance baru.
Cara Mempertahankan State
Android menyimpan ViewModel di penyimpanan yang dipertahankan selama perubahan konfigurasi, lalu otomatis menghubungkannya kembali ke Activity baru Anda.
Saat Dihapus
ViewModel tetap hidup sampai layar benar-benar selesai. Saat pengguna berpindah untuk selamanya, onCleared() dijalankan agar Anda dapat melepaskan sumber daya.
override fun onCleared() {
// cancel jobs, close streams
}Bukan untuk Semuanya
ViewModel bertahan saat rotasi tetapi tidak bertahan saat proses dihentikan. Untuk itu, pasangkan dengan SavedStateHandle agar value penting dapat dipulihkan nanti.
Menambahkan Dependensi
Anda mendapatkan dukungan ViewModel dari pustaka siklus hidup. Tambahkan artefak lifecycle-viewmodel-compose agar Compose dapat memperolehnya dengan mudah.
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0")Pemisahan Tanggung Jawab
Selain mempertahankan state, ViewModel menjaga logika tetap berada di luar UI. Composable Anda tetap berfokus pada penggambaran, sementara ViewModel memiliki state.
Model Mental
Bayangkan ViewModel sebagai pengelola di belakang panggung yang tenang: Activity datang dan pergi, tetapi pengelola menjaga state pertunjukan Anda agar siap ditampilkan kembali.
Mengapa Ini Penting
Bertahan saat rotasi berarti pengguna tidak pernah kehilangan kemajuan di tengah tugas. Keandalan itu adalah fondasi setiap aplikasi Compose yang tangguh. ✨
Pemeriksaan Singkat
Uji pemahaman Anda tentang alasan ViewModel bertahan lebih lama daripada rotasi.
Rangkuman
Rotasi membuat ulang Activity Anda, tetapi ViewModel bertahan menghadapi perubahan konfigurasi dan terhubung kembali, sehingga state UI tetap utuh dan logika berada di luar UI.
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 “Mengapa ViewModel Bertahan setelah Rotasi” gratis?
Ya — teks lengkap “Mengapa ViewModel Bertahan setelah Rotasi” 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 “Mengapa ViewModel Bertahan setelah Rotasi”?
Pertahankan state selama perubahan konfigurasi. 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 1 dari 4.
Berapa lama pelajaran “Mengapa ViewModel Bertahan setelah Rotasi” 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