Foros del Web » Programando para Internet » Android »

Guardar estado de Activity al presionar botón de retroceso

Estas en el tema de Guardar estado de Activity al presionar botón de retroceso en el foro de Android en Foros del Web. Estimados amigos, saludos para todos. Pues debe ser una pregunta tonta, pero no logro solucionar este problema. El propio SO Android llama a los métodos ...
  #1 (permalink)  
Antiguo 16/10/2013, 20:51
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Guardar estado de Activity al presionar botón de retroceso

Estimados amigos, saludos para todos.

Pues debe ser una pregunta tonta, pero no logro solucionar este problema.

El propio SO Android llama a los métodos onSaveInstanceState() y onRestoreInstanceState() para salvar y recuperar el estado de las views de la Activity, incluso nosotros podemos sobreescribirlos para guardar otras variables de instancia (strings por ejemplo). Pero estas invocaciones se hacen de forma automática por Android (antes de llamar al método Destroy()) cuando hay algún cambio en la configuración del dispositivo, por ejemplo cuando se cambia la orientación del mismo.

Sin embargo cuando se destruye la actividad adrede, por ejemplo presionando el botón de retroceso, no es llamado el método onSaveInstanceState().

¿Cómo hago ésto, guardar el estado de la actividad (de views y otros miembros) cuando presiono el botón de retroceso?

Saludos para todos!
  #2 (permalink)  
Antiguo 17/10/2013, 08:59
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Guardar estado de Activity al presionar botón de retroceso

no sé exactamente qué es lo que quieres, pero no puedes hacer algo con el onBackPressed??
  #3 (permalink)  
Antiguo 17/10/2013, 11:16
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Guardar estado de Activity al presionar botón de retroceso

Hola educdd, básicamente quería simular el comportamiento de los métodos onSaveInstanceState() y onRestoreInstanceState(), pero manualmente, no por parte del sistema, como lo hace en casos en que una actividad tiene posibilidad de ser destruída (al cambiar la orientación del dispositivo por ejemplo).

Pero, por lo que estuve viendo en algún foro en inglés, se comentaba que por la propia gestión que hace Android con la pila de Activities, destruyendo la de primer plano (la del tope de la pila) cuando se presiona el botón de retroceso, lo ideal es usar algún tipo de persistencia de datos.

Tu dices usar el método onBackPressed(), para guardar allí el estado de la Activity, no? (por ejemplo texto en los EditText). En todo caso debería, una vez que se destruyó la Activity (por presionar el botón de retroceso), guardar el estado de cada view en este método y cuando relanzo la Activity, ¿donde asigno esos valores, en qué método?
La ventaja de los métodos que menciono al principio es que ellos automáticamente hacen ese respaldo en caso de que se destruya la Activity.

Un saludo.

Última edición por sebamawa; 17/10/2013 a las 11:22

Etiquetas: activity, estado, presionar, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:31.