Ποιες μεθόδους γνωρίζετε για τη διατήρηση της κατάστασης της διεπαφής χρήστη σε εφαρμογές;
sobes.tech AI
Απάντηση από AI
Για την αποθήκευση της κατάστασης του περιβάλλοντος χρήστη σε εφαρμογές Android, χρησιμοποιούνται οι ακόλουθες μέθοδοι:
-
onSaveInstanceState(Bundle outState) και onRestoreInstanceState(Bundle savedInstanceState) — επιτρέπουν την αποθήκευση και επαναφορά της κατάστασης μιας Activity ή Fragment κατά την αναδημιουργία τους (π.χ., κατά την περιστροφή της οθόνης).
-
ViewModel — αποθηκεύει δεδομένα που σχετίζονται με το UI και επιβιώνει τις αλλαγές διαμόρφωσης χωρίς να χάνει την κατάσταση.
-
SharedPreferences — για την αποθήκευση απλών δεδομένων (ρυθμίσεις, σημαίες) μεταξύ συνεδριών της εφαρμογής.
-
Αποθήκευση κατάστασης σε βάσεις δεδομένων ή αρχεία — για πιο πολύπλοκα ή μεγάλα δεδομένα.
-
SavedStateHandle — σε συνδυασμό με το ViewModel, επιτρέπει την αποθήκευση και επαναφορά της κατάστασης του UI.
Παράδειγμα αποθήκευσης της κατάστασης ενός πεδίου κειμένου σε μια Activity:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("input_text", editText.getText().toString());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String text = savedInstanceState.getString("input_text");
editText.setText(text);
}