Sobes.tech
Junior — Middle

Πώς πραγματοποιείται η αποθήκευση δεδομένων μέσα στο ViewModel στις εφαρμογές Android;

sobes.tech AI

Απάντηση από AI

Στο Android, το ViewModel αποθηκεύει δεδομένα που πρέπει να επιβιώσουν από αλλαγές διαμόρφωσης (π.χ. περιστροφή οθόνης). Για αυτό, το ViewModel διατηρεί την κατάσταση στα πεδία του, και κατά την αναδημιουργία της Activity ή Fragment, τα δεδομένα παραμένουν προσβάσιμα.

Εάν χρειάζεται να αποθηκεύσετε δεδομένα σε περίπτωση πλήρους τερματισμού της εφαρμογής, χρησιμοποιείται το SavedStateHandle — ένα ειδικό αντικείμενο που επιτρέπει την αποθήκευση και επαναφορά της κατάστασης.

Παράδειγμα χρήσης του ViewModel με SavedStateHandle:

class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
    var userName: String?
        get() = state["userName"]
        set(value) {
            state["userName"] = value
        }
}

Έτσι, τα δεδομένα μέσα στο ViewModel αποθηκεύονται στη μνήμη, και αν χρειάζεται, στο SavedStateHandle για επαναφορά μετά τον τερματισμό της διαδικασίας.