Sobes.tech
Junior — Middle

Τι πρέπει να λαμβάνεται υπόψη κατά την αποθήκευση της κατάστασης της εφαρμογής με τη μέθοδο onSaveInstanceState;

sobes.tech AI

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

Κατά τη χρήση του onSaveInstanceState, είναι σημαντικό να θυμάστε:

  • Αποθηκεύστε μόνο μικρά και απαραίτητα δεδομένα, όπως η κατάσταση της διεπαφής χρήστη (κείμενο στα πεδία, επιλεγμένα στοιχεία).
  • Μην αποθηκεύετε μεγάλα αντικείμενα ή δεδομένα που μπορούν να ανακτηθούν με άλλο τρόπο (π.χ. από βάση δεδομένων ή δίκτυο).
  • Το onSaveInstanceState καλείται πριν από την καταστροφή της δραστηριότητας, π.χ. κατά την περιστροφή της οθόνης.
  • Η ανάκτηση δεδομένων γίνεται στη μέθοδο onCreate ή onRestoreInstanceState.
  • Χρησιμοποιήστε το Bundle για την αποθήκευση δεδομένων, υποστηρίζει primitive τύπους, Serializable, Parcelable.

Παράδειγμα αποθήκευσης κειμένου από ένα EditText:

override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    outState.putString("input_text", editText.text.toString())
}

override fun onRestoreInstanceState(savedInstanceState: Bundle) {
    super.onRestoreInstanceState(savedInstanceState)
    val text = savedInstanceState.getString("input_text")
    editText.setText(text)
}