Sobes.tech
Junior — Middle

Ką reikia atsižvelgti išsaugant programos būseną naudojant metodą onSaveInstanceState?

sobes.tech AI

Atsakymas iš AI

Naudojant onSaveInstanceState svarbu prisiminti:

  • Saugoti tik mažus ir būtinus duomenis, pvz., UI būseną (tekstas laukuose, pasirinkti elementai).
  • Nesaugoti didelių objektų ar duomenų, kuriuos galima atkurti kitaip (pvz., iš duomenų bazės ar tinklo).
  • onSaveInstanceState kviečiamas prieš veiklos sunaikinimą, pvz., ekrano pasukimo metu.
  • Duomenų atstatymas vyksta metodų onCreate arba onRestoreInstanceState metu.
  • Naudokite Bundle duomenų saugojimui, palaiko pagrindinius tipus, Serializable, Parcelable.

Pavyzdys, kaip išsaugoti tekstą iš 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)
}