Los Objetos Estáticos en Android y Su Curioso Comportamiento


Cuando se inicia una aplicación en Android, el SO inicia un proceso y le asigna una identificación única, además de asignarla a una tabla de procesos.

El proceso empieza una instancia de la Máquina Virtual Dalvik (DVM), ya que cada aplicación se ejecuta dentro de una DVM.


Una variable estática empieza a existir cuando una clase es cargada por la máquina virtual, y deja de existir cuando es liberada. Así que si creas una aplicación e inicias una variable estática, será liberada hasta que pase una de las siguientes opciones:

  • La clase es descargada
  • La Máquina Virtual es cerrada
  • El proceso muere

Hay que tomar en cuenta que el valor de la variable estática persiste cuando se cambia a una actividad diferente, incluso de otra aplicación y nada de lo antes mencionado sucede.


Para probar este comportamiento, se puede realizar la siguiente prueba:

  1. Imprimir la variable estática no iniciada en el método onCreate de la actividad. Deberá imprimir "null".
  2. Iniciar e imprimir la variable estática. Se deberá imprimir un valor no nulo.
  3. Presionar el botón atrás hasta llegar a la pantalla Home (es decir, otra actividad).
  4. Ejecutar nuevamente la actividad. La variable estática será no nula.
  5. Finalizar el proceso desde DDMS usando el botón Stop en la ventana de dispositivos.
  6. Reiniciar la actividad. La variable estática tendrá un valor nulo.

Cuéntanos en un comentario, ¿qué más nos puedes decir de los Objetos Estáticos en Android?

No hay comentarios:

Publicar un comentario