vida savedinstancestate onrestart intent example ciclo activity java android ondestroy activity-finish

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() y onDestroy() , por razones independientes de lo que esté activando la llamada para finish()

  • 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() y onDestroy()

  • La batería podría onDestroy() entre el finish() y onDestroy()

  • 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í:

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!