java - savedinstancestate - Android: ¿Terminará() SIEMPRE se llamará a Destruir()?
onstart android example (2)
Pregunta simple: ¿puede estar seguro de que finish () llamará aDestroy ()?
Primero, esta respuesta asume que te estás refiriendo a la clase de Activity
de Android y su método onDestroy()
método de ciclo de vida onDestroy()
.
Segundo, depende de tu definición de "seguro":
Su proceso podría terminarse entre
finish()
yonDestroy()
, por razones independientes de lo que esté activando la llamada parafinish()
Un fabricante de dispositivos o un modificador de ROM podría introducir algún cambio inestable que podría romper la conexión entre
finish()
yonDestroy()
La batería podría
onDestroy()
entre elfinish()
yonDestroy()
Etc.
En tercer lugar, finish()
no llama onDestroy()
. Puedes saberlo leyendo el código fuente . finish()
normalmente activa una llamada a onDestroy()
.
En términos generales, finish()
eventualmente resultará en que se onDestroy()
.
Esta pregunta ya tiene una respuesta aquí:
- ¿Qué hace exactamente el método Activity.finish ()? 12 respuestas
Pregunta simple: ¿puede estar seguro de que finish()
llamará onDestroy()
? No he encontrado ninguna confirmación sobre esto.
No, no puedes estar seguro!
Llamar a finish () generalmente activa onDestroy () según el ciclo de vida de la actividad, pero no puedes confiar en él. Específicamente no para guardar sus datos. Documentation dice claramente
do not count on this method being called as a place for saving data!