0Pricing
Android Academy · Pelajaran

rememberSaveable

Pertahankan state saat konfigurasi berubah.

rememberSaveable adalah pelajaran Android 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 Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.

Masalah dengan remember

remember bertahan selama rekomposisi, tetapi tidak bertahan melewati perubahan konfigurasi seperti rotasi layar. Saat activity dibuat ulang, status yang diingat akan hilang dan diatur ulang ke nilai awalnya.

Gunakan rememberSaveable

rememberSaveable bekerja seperti remember, tetapi juga menyimpan nilai melewati perubahan konfigurasi dan kematian proses, lalu memulihkannya.

var count by rememberSaveable { mutableStateOf(0) }

Contoh Rotasi

Dengan remember biasa, memutar ponsel akan mengatur ulang penghitung ke 0. Dengan rememberSaveable, count dipertahankan setelah rotasi.

Cara Penyimpanannya

Di balik layar, rememberSaveable menyimpan nilai di Bundle status instance tersimpan milik activity, yaitu mekanisme yang sama dengan yang digunakan sistem View lama untuk onSaveInstanceState.

Jenis yang Didukung

Fungsi ini secara otomatis menyimpan jenis yang dapat dimuat dalam Bundle: primitif, String, dan objek Parcelable. Jenis khusus memerlukan sedikit pekerjaan tambahan.

Kematian Proses

Jika Android menghentikan aplikasi Anda di latar belakang untuk mengosongkan memori, lalu pengguna kembali, rememberSaveable memulihkan status yang tersimpan sehingga layar tampak seperti saat ditinggalkan pengguna.

Penyimpan Khusus

Untuk jenis yang tidak dapat disimpan secara otomatis, sediakan Saver yang mengonversinya ke dan dari bentuk yang dapat disimpan. Compose menyediakan pembantu seperti listSaver dan mapSaver.

val saver = listSaver<MyState, Any>(
    save = { listOf(it.a, it.b) },
    restore = { MyState(it[0] as Int, it[1] as String) }
)

Menggunakan Penyimpan Khusus

Teruskan penyimpan ke rememberSaveable melalui parameternya, yaitu saver, agar Compose mengetahui cara mempertahankan jenis Anda.

var state by rememberSaveable(stateSaver = saver) {
    mutableStateOf(MyState(0, ""))
}

Kapan Menggunakan yang Mana

Gunakan rememberSaveable untuk status yang akan membuat pengguna kesal jika hilang saat rotasi — input formulir, posisi gulir, atau tab yang dipilih. Gunakan remember biasa untuk status UI sementara yang tidak masalah jika diatur ulang.

Bukan untuk Data Besar

Bundle tersimpan berukuran kecil. Jangan menyimpan data besar (bitmap, daftar panjang) di rememberSaveable. Simpan data berat dalam ViewModel atau repositori, dan simpan hanya pengenal berukuran kecil.

Menyatukan Semuanya

Kolom formulir yang tetap tersimpan setelah rotasi berkat rememberSaveable.

@Composable
fun LoginField() {
    var email by rememberSaveable { mutableStateOf("") }
    TextField(
        value = email,
        onValueChange = { email = it }
    )
}

Pemeriksaan Singkat

Apa yang dilakukan rememberSaveable yang tidak dilakukan oleh remember?

Ringkasan

rememberSaveable:

  • Tetap bertahan setelah rotasi dan kematian proses, bukan hanya saat komposisi ulang.
  • Menyimpan otomatis tipe primitif, String, dan Parcelable.
  • Gunakan Saver untuk tipe khusus.
  • Jaga agar data yang disimpan tetap kecil; data besar sebaiknya berada di dalam ViewModel.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “rememberSaveable” gratis?

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

Apa yang akan aku pelajari di “rememberSaveable”?

Pertahankan state saat konfigurasi berubah. Kamu berlatih Android 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 Android Academy?

Tidak diperlukan pengalaman sebelumnya. Android 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 “rememberSaveable” 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 Android Academy ini?

Ya. Setiap pelajaran Android 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. State dengan remember dan mutableStateOf
  2. Penjelasan Rekomposisi
  3. Mengangkat State
  4. rememberSaveable
← Kembali ke Android Academy