Sobes.tech
Junior — Middle

Ποιες μεθόδους γνωρίζετε για τη διατήρηση της κατάστασης της διεπαφής χρήστη σε εφαρμογές;

sobes.tech AI

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

Για την αποθήκευση της κατάστασης του περιβάλλοντος χρήστη σε εφαρμογές Android, χρησιμοποιούνται οι ακόλουθες μέθοδοι:

  1. onSaveInstanceState(Bundle outState) και onRestoreInstanceState(Bundle savedInstanceState) — επιτρέπουν την αποθήκευση και επαναφορά της κατάστασης μιας Activity ή Fragment κατά την αναδημιουργία τους (π.χ., κατά την περιστροφή της οθόνης).

  2. ViewModel — αποθηκεύει δεδομένα που σχετίζονται με το UI και επιβιώνει τις αλλαγές διαμόρφωσης χωρίς να χάνει την κατάσταση.

  3. SharedPreferences — για την αποθήκευση απλών δεδομένων (ρυθμίσεις, σημαίες) μεταξύ συνεδριών της εφαρμογής.

  4. Αποθήκευση κατάστασης σε βάσεις δεδομένων ή αρχεία — για πιο πολύπλοκα ή μεγάλα δεδομένα.

  5. 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);
}