iberck
3/30/2015 - 7:55 PM

Persistir el estado

Persistir el estado

onSaveInstaceState

onSaveInstaceState/onRestoreInstanceState

Método que sirve para guardar el estado transitorio de la actividad, es decir el estado temporal. El sistema llama a onSaveInstanceState antes de que la actividad sea vulnerable a ser destruida.

Ejemplos de estado transitorio:

  • Guardar el minuto/segundo en el que se reproduce una canción.
  • Guardar la posición actual de un muñeco en un videogame.
  • Guardar el texto actual de un textfield.
  • Guardar la selección actual de un combobox.

No hay garantía de que onSaveInstanceState será llamado antes de que se destruya la actividad, porque hay casos en los que no es necesario (como cuando el usuario abandona la actividad al presionar el botón back), por lo tanto este método solo debe ser utilizado para guardar el estado transitorio.

onRetainNonConfigurationInstance

onRetainNonConfigurationInstance/getLastNonConfigurationInstance

Sirve para mantener instancias de objetos vivas en memoria, nota: si se muere el proceso no retiene la instancia.

getLastNonConfigurationInstance: Returns the object previously returned by onRetainNonConfigurationInstance().

Guardar el estado persistente

onPause/onResume

Sirve para guardar el estado persistente de una actividad, nota: El estado persistente no necesariamente se tiene que guardar en estos métodos, por ejemplo: se desea guardar el ranking de una canción en un reproductor de música, se podría guardar cada que el usuario lo cambia. Sin embargo, si el guardar el ranking elegido fuese un proceso costoso, entonces sería conveniente guardar el estado en el método onPause().

Lugares dónde persistir

  • Shared preferences
  • SQLite database
  • Files