El funcionamiento de los Objetos Estáticos en Android


Cuando se inicia una aplicación, el sistema operativo inicia un proceso y le asigna un identificador único, ademas le asigna una tabla de procesos. El proceso empieza una instancia de la maquina virtual Dalvik (DVM). Cada aplicación se ejecuta dentro de una DVM.
Una variable estática empieza a existir cuando una clase es cargada por la JVM, y muere cuando la clase es liberada.
Así que si creas una aplicación e inicializas una variable estática, permanecerá en la JVM hasta que uno de estos pase:

  • La clase es descargada
  • La JVM es cerrada
  • El proceso muere
Tener 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 inicializada en el método onCreate de la actividad→ Debería imprimir null
  2. Inicializar e imprimir la variable estática → Se debería 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. Matar 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

No hay comentarios:

Publicar un comentario